173 lines
7.6 KiB
Python
173 lines
7.6 KiB
Python
#!/usr/bin/env python
|
|
# encoding: utf-8
|
|
|
|
from efl import evas
|
|
from efl import elementary
|
|
from efl.elementary.window import Window
|
|
from efl.elementary.background import Background
|
|
from efl.elementary.box import Box
|
|
from efl.elementary.button import Button
|
|
|
|
|
|
def btn_del_cbs_cb(button, rect):
|
|
rect.event_callback_del(evas.EVAS_CALLBACK_MOUSE_IN, events_cb2)
|
|
rect.event_callback_del(evas.EVAS_CALLBACK_MOUSE_OUT, events_cb2)
|
|
rect.event_callback_del(evas.EVAS_CALLBACK_MOUSE_DOWN, events_cb2)
|
|
rect.event_callback_del(evas.EVAS_CALLBACK_MOUSE_UP, events_cb2)
|
|
rect.event_callback_del(evas.EVAS_CALLBACK_MOUSE_MOVE, events_cb2)
|
|
rect.event_callback_del(evas.EVAS_CALLBACK_MOUSE_WHEEL, events_cb2)
|
|
rect.event_callback_del(evas.EVAS_CALLBACK_MULTI_DOWN, events_cb2)
|
|
rect.event_callback_del(evas.EVAS_CALLBACK_MULTI_UP, events_cb2)
|
|
rect.event_callback_del(evas.EVAS_CALLBACK_MULTI_MOVE, events_cb2)
|
|
rect.event_callback_del(evas.EVAS_CALLBACK_FREE, events_cb1)
|
|
rect.event_callback_del(evas.EVAS_CALLBACK_KEY_DOWN, events_cb2)
|
|
rect.event_callback_del(evas.EVAS_CALLBACK_KEY_UP, events_cb2)
|
|
rect.event_callback_del(evas.EVAS_CALLBACK_FOCUS_IN, events_cb2)
|
|
rect.event_callback_del(evas.EVAS_CALLBACK_FOCUS_OUT, events_cb2)
|
|
rect.event_callback_del(evas.EVAS_CALLBACK_SHOW, events_cb1)
|
|
rect.event_callback_del(evas.EVAS_CALLBACK_HIDE, events_cb1)
|
|
rect.event_callback_del(evas.EVAS_CALLBACK_MOVE, events_cb1)
|
|
rect.event_callback_del(evas.EVAS_CALLBACK_RESIZE, events_cb1)
|
|
rect.event_callback_del(evas.EVAS_CALLBACK_RESTACK, events_cb1)
|
|
rect.event_callback_del(evas.EVAS_CALLBACK_DEL, events_cb1)
|
|
rect.event_callback_del(evas.EVAS_CALLBACK_HOLD, events_cb1)
|
|
rect.event_callback_del(evas.EVAS_CALLBACK_CHANGED_SIZE_HINTS, events_cb1)
|
|
rect.event_callback_del(evas.EVAS_CALLBACK_IMAGE_PRELOADED, events_cb1)
|
|
rect.event_callback_del(evas.EVAS_CALLBACK_IMAGE_UNLOADED, events_cb1)
|
|
|
|
|
|
def events_cb1(rect, event_name):
|
|
print(event_name + " No data for event")
|
|
|
|
def events_cb2(rect, evtinfo, event_name):
|
|
print(event_name + " " + str(evtinfo))
|
|
|
|
|
|
def core_evas_object_callbacks_clicked(obj, item=None):
|
|
win = Window("evas3d", elementary.ELM_WIN_BASIC)
|
|
win.title_set("Evas object callbacks")
|
|
win.autodel_set(True)
|
|
if obj is None:
|
|
win.callback_delete_request_add(lambda o: elementary.exit())
|
|
|
|
bg = Background(win)
|
|
win.resize_object_add(bg)
|
|
bg.size_hint_weight_set(evas.EVAS_HINT_EXPAND, evas.EVAS_HINT_EXPAND)
|
|
bg.size_hint_align_set(evas.EVAS_HINT_FILL, evas.EVAS_HINT_FILL)
|
|
bg.show()
|
|
|
|
text = evas.Text(win.evas, text="Events printed on console", size=(300, 30), color=(0,0,0,255))
|
|
text.font_set("Sans", 12)
|
|
text.pos = (10, 10)
|
|
text.show()
|
|
|
|
r = evas.Rectangle(win.evas, size=(100,100), color=(100,0,0,200), pos=(50,50))
|
|
r.event_callback_add(evas.EVAS_CALLBACK_MOUSE_IN, events_cb2, "EVAS_CALLBACK_MOUSE_IN")
|
|
r.event_callback_add(evas.EVAS_CALLBACK_MOUSE_OUT, events_cb2, "EVAS_CALLBACK_MOUSE_OUT")
|
|
r.event_callback_add(evas.EVAS_CALLBACK_MOUSE_DOWN, events_cb2, "EVAS_CALLBACK_MOUSE_DOWN")
|
|
r.event_callback_add(evas.EVAS_CALLBACK_MOUSE_UP, events_cb2, "EVAS_CALLBACK_MOUSE_UP")
|
|
r.event_callback_add(evas.EVAS_CALLBACK_MOUSE_MOVE, events_cb2, "EVAS_CALLBACK_MOUSE_MOVE")
|
|
r.event_callback_add(evas.EVAS_CALLBACK_MOUSE_WHEEL, events_cb2, "EVAS_CALLBACK_MOUSE_WHEEL")
|
|
r.event_callback_add(evas.EVAS_CALLBACK_MULTI_DOWN, events_cb2, "EVAS_CALLBACK_MULTI_DOWN")
|
|
r.event_callback_add(evas.EVAS_CALLBACK_MULTI_UP, events_cb2, "EVAS_CALLBACK_MULTI_UP")
|
|
r.event_callback_add(evas.EVAS_CALLBACK_MULTI_MOVE, events_cb2, "EVAS_CALLBACK_MULTI_MOVE")
|
|
r.event_callback_add(evas.EVAS_CALLBACK_FREE, events_cb1, "EVAS_CALLBACK_FREE")
|
|
r.event_callback_add(evas.EVAS_CALLBACK_KEY_DOWN, events_cb2, "EVAS_CALLBACK_KEY_DOWN")
|
|
r.event_callback_add(evas.EVAS_CALLBACK_KEY_UP, events_cb2, "EVAS_CALLBACK_KEY_UP")
|
|
r.event_callback_add(evas.EVAS_CALLBACK_FOCUS_IN, events_cb2, "EVAS_CALLBACK_FOCUS_IN")
|
|
r.event_callback_add(evas.EVAS_CALLBACK_FOCUS_OUT, events_cb2, "EVAS_CALLBACK_FOCUS_OUT")
|
|
r.event_callback_add(evas.EVAS_CALLBACK_SHOW, events_cb1, "EVAS_CALLBACK_SHOW")
|
|
r.event_callback_add(evas.EVAS_CALLBACK_HIDE, events_cb1, "EVAS_CALLBACK_HIDE")
|
|
r.event_callback_add(evas.EVAS_CALLBACK_MOVE, events_cb1, "EVAS_CALLBACK_MOVE")
|
|
r.event_callback_add(evas.EVAS_CALLBACK_RESIZE, events_cb1, "EVAS_CALLBACK_RESIZE")
|
|
r.event_callback_add(evas.EVAS_CALLBACK_RESTACK, events_cb1, "EVAS_CALLBACK_RESTACK")
|
|
r.event_callback_add(evas.EVAS_CALLBACK_DEL, events_cb1, "EVAS_CALLBACK_DEL")
|
|
r.event_callback_add(evas.EVAS_CALLBACK_HOLD, events_cb1, "EVAS_CALLBACK_HOLD")
|
|
r.event_callback_add(evas.EVAS_CALLBACK_CHANGED_SIZE_HINTS, events_cb1, "EVAS_CALLBACK_CHANGED_SIZE_HINTS")
|
|
r.event_callback_add(evas.EVAS_CALLBACK_IMAGE_PRELOADED, events_cb1, "EVAS_CALLBACK_IMAGE_PRELOADED")
|
|
r.event_callback_add(evas.EVAS_CALLBACK_IMAGE_UNLOADED, events_cb1, "EVAS_CALLBACK_IMAGE_UNLOADED")
|
|
## r.event_callback_add(evas.EVAS_CALLBACK_CANVAS_FOCUS_IN, events_cb1, "EVAS_CALLBACK_CANVAS_FOCUS_IN")
|
|
## r.event_callback_add(evas.EVAS_CALLBACK_CANVAS_FOCUS_OUT, events_cb1, "")
|
|
## r.event_callback_add(evas.EVAS_CALLBACK_RENDER_FLUSH_PRE, events_cb1, "")
|
|
## r.event_callback_add(evas.EVAS_CALLBACK_RENDER_FLUSH_POST, events_cb1, "")
|
|
## r.event_callback_add(evas.EVAS_CALLBACK_CANVAS_OBJECT_FOCUS_IN, events_cb1, "")
|
|
## r.event_callback_add(evas.EVAS_CALLBACK_CANVAS_OBJECT_FOCUS_OUT, events_cb1, "")
|
|
|
|
## r.event_callback_add(evas.EVAS_CALLBACK_RENDER_PRE, events_cb1, "")
|
|
## r.event_callback_add(evas.EVAS_CALLBACK_RENDER_POST, events_cb1, "")
|
|
#? r.event_callback_add(evas.EVAS_CALLBACK_IMAGE_RESIZE, events_cb1, "")
|
|
#? r.event_callback_add(evas.EVAS_CALLBACK_DEVICE_CHANGED, events_cb1, "")
|
|
r.show()
|
|
|
|
r2 = evas.Rectangle(win.evas, size=(120,70), color=(0,100,0,100), pos=(70,70))
|
|
r2.show()
|
|
|
|
hbox = Box(win)
|
|
win.resize_object_add(hbox)
|
|
hbox.size_hint_weight_set(evas.EVAS_HINT_EXPAND, evas.EVAS_HINT_EXPAND)
|
|
hbox.size_hint_align_set(evas.EVAS_HINT_FILL, evas.EVAS_HINT_FILL)
|
|
hbox.horizontal = True
|
|
hbox.show()
|
|
|
|
b = Button(win)
|
|
b.text = "show / hide"
|
|
b.size_hint_align_set(0.5, 1.0)
|
|
hbox.pack_end(b)
|
|
b.callback_clicked_add(lambda b, r: r.hide() if r.visible else r.show(), r)
|
|
b.show()
|
|
|
|
b = Button(win)
|
|
b.text = "move"
|
|
b.size_hint_align_set(0.5, 1.0)
|
|
hbox.pack_end(b)
|
|
b.callback_clicked_add(lambda b, t: r.pos_set(r.pos[0] + 1, r.pos[1]), r)
|
|
b.show()
|
|
|
|
b = Button(win)
|
|
b.text = "resize"
|
|
b.size_hint_align_set(0.5, 1.0)
|
|
hbox.pack_end(b)
|
|
b.callback_clicked_add(lambda b, r: r.size_set(r.size[0] + 1, r.size[1] + 1), r)
|
|
b.show()
|
|
|
|
b = Button(win)
|
|
b.text = "delete"
|
|
b.size_hint_align_set(0.5, 1.0)
|
|
hbox.pack_end(b)
|
|
b.callback_clicked_add(lambda b, r: r.delete(), r)
|
|
b.show()
|
|
|
|
b = Button(win)
|
|
b.text = "raise"
|
|
b.size_hint_align_set(0.5, 1.0)
|
|
hbox.pack_end(b)
|
|
b.callback_clicked_add(lambda b, r: r.raise_(), r)
|
|
b.show()
|
|
|
|
b = Button(win)
|
|
b.text = "hints"
|
|
b.size_hint_align_set(0.5, 1.0)
|
|
hbox.pack_end(b)
|
|
b.callback_clicked_add(lambda b, r: r.size_hint_align_set(0.0, 0.0), r)
|
|
b.show()
|
|
|
|
b = Button(win)
|
|
b.text = "del cbs"
|
|
b.size_hint_align_set(0.5, 1.0)
|
|
hbox.pack_end(b)
|
|
b.callback_clicked_add(btn_del_cbs_cb, r)
|
|
b.show()
|
|
|
|
win.resize(320, 320)
|
|
win.show()
|
|
|
|
|
|
if __name__ == "__main__":
|
|
elementary.init()
|
|
|
|
core_evas_object_callbacks_clicked(None)
|
|
|
|
elementary.run()
|
|
elementary.shutdown()
|
|
evas.shutdown()
|