Better detection of package version
[maemo-efl] / examples / test-evas.py
1 #!/usr/bin/env python
2
3 import ecore
4 import ecore.evas
5
6 ecore.init()
7 ecore.evas.init()
8
9 ee = ecore.evas.SoftwareX11_16(w=800, h=480)
10 canvas = ee.evas
11
12 bg = canvas.Rectangle(color="#ffffff")
13 bg.size = canvas.size
14 bg.show()
15 ee.data["bg"] = bg
16
17 img = canvas.Image(file="icon.png", size=(128, 128))
18 img.center = canvas.rect.center
19 img.data["step"] = 1
20 img.show()
21 ee.show()
22 ee.data["img"] = img
23
24 def mouse_in_cb(obj, event, a, b):
25     print "Mouse IN:", obj, event, a, b
26 img.on_mouse_in_add(mouse_in_cb, 123, b=456)
27 def mouse_down_cb(obj, event, xyz, abc):
28     print "Mouse Down:", obj, event, xyz, abc
29 img.on_mouse_down_add(mouse_down_cb, 1234, abc=456)
30 def mouse_move_cb(obj, event):
31     #print "Mouse Move:", obj, event
32     pass
33 img.on_mouse_move_add(mouse_move_cb)
34 def resize_cb(obj):
35     #print "Resized:", obj
36     pass
37 img.on_resize_add(resize_cb)
38
39
40 def key_down_cb(bg, event, img):
41     print "Key Down:", img, event
42     k = event.key
43     if k == "Escape":
44         ecore.main_loop_quit()
45     elif k == "Left":
46         x, y = img.pos
47         img.pos = (x - 1, y)
48     elif k == "Right":
49         x, y = img.pos
50         img.pos = (x + 1, y)
51     elif k == "Up":
52         x, y = img.pos
53         img.pos = (x, y - 1)
54     elif k == "Down":
55         x, y = img.pos
56         img.pos = (x, y + 1)
57 bg.on_key_down_add(key_down_cb, img)
58
59
60 def resize_cb(ee):
61     r = ee.evas.rect
62     ee.data["bg"].size = r.size
63     ee.data["img"].center = r.center
64 ee.callback_resize = resize_cb
65
66
67 def anim(canvas, img):
68     w = img.size[0]
69     step = img.data["step"]
70     if not (32 <= w + step <= 128):
71         img.data["step"] = -step
72     w += step
73     img.size = (w, w)
74     img.fill = (0, 0, w, w)
75     return True
76 ecore.animator_add(anim, canvas, img)
77
78 bg.focus = True
79 ecore.main_loop_begin()