Better detection of package version
[maemo-efl] / examples / test-evas-smart_object.py
1 #!/usr/bin/env python
2
3 import evas
4 import ecore
5 import ecore.evas
6
7 evas.init()
8 ecore.init()
9 ecore.evas.init()
10
11 class MyObject(evas.SmartObject):
12     def __init__(self, canvas, *a, **ka):
13         evas.SmartObject.__init__(self, canvas, *a, **ka)
14         self.callback_add("teste", self.cb_teste)
15         self.callback_add("teste", self.cb_teste2)
16
17         self.r1 = evas.Rectangle(canvas, geometry=(0, 0, 20, 20),
18                                  color="#ff0000")
19         self.member_add(self.r1)
20         self.r2 = evas.Rectangle(canvas, geometry=(10, 10, 20, 20),
21                                  color="#00ff00")
22         self.member_add(self.r2)
23
24     def hide(self):
25         evas.SmartObject.hide(self)
26         print "MyObject hide", self
27
28     @staticmethod
29     def cb_teste(self, info):
30         print "cb_teste:", info
31
32     @staticmethod
33     def cb_teste2(self, info):
34         print "cb_teste2:", info
35
36
37 def main():
38     ee = ecore.evas.SoftwareX11_16(w=640, h=480)
39     canvas = ee.evas
40
41     bg = canvas.Rectangle(color="#ffffff")
42     bg.size = canvas.size
43     bg.show()
44
45     so = MyObject(canvas)
46     so.size = (100, 100)
47     so.center = canvas.rect.center
48     so.show()
49     so.callback_call("teste", 1234)
50
51     def resize_cb(ee):
52         ee.data["bg"].size = ee.evas.size
53         ee.data["so"].center = ee.evas.rect.center
54     ee.data["bg"] = bg
55     ee.data["so"] = so
56     ee.callback_resize = resize_cb
57
58     ee.show()
59     ecore.main_loop_begin()
60
61 main()
62 ecore.evas.shutdown()
63 ecore.shutdown()
64 evas.shutdown()