--- /dev/null
+Here you will find some examples of code to run on maemo using EFL.
+
+Basically, you need to use ecore.evas.SoftwareX11_16() instead of
+ecore.evas.SoftwareX11() in order to get optimized render.
+
+Please notice that SoftwareX11_16() is still incomplete, so maybe
+you will need to use SoftwareX11() to get everything working.
+
+More code can be found at:
+ - http://www.enlightenment.org/
+ - http://barbieri-playground.googlecode.com/svn/efl-tests/
--- /dev/null
+#!/usr/bin/env python
+
+import evas
+import ecore
+import ecore.evas
+
+evas.init()
+ecore.init()
+ecore.evas.init()
+
+class MyObject(evas.SmartObject):
+ def __init__(self, canvas, *a, **ka):
+ evas.SmartObject.__init__(self, canvas, *a, **ka)
+ self.callback_add("teste", self.cb_teste)
+ self.callback_add("teste", self.cb_teste2)
+
+ self.r1 = evas.Rectangle(canvas, geometry=(0, 0, 20, 20),
+ color="#ff0000")
+ self.member_add(self.r1)
+ self.r2 = evas.Rectangle(canvas, geometry=(10, 10, 20, 20),
+ color="#00ff00")
+ self.member_add(self.r2)
+
+ def hide(self):
+ evas.SmartObject.hide(self)
+ print "MyObject hide", self
+
+ @staticmethod
+ def cb_teste(self, info):
+ print "cb_teste:", info
+
+ @staticmethod
+ def cb_teste2(self, info):
+ print "cb_teste2:", info
+
+
+def main():
+ ee = ecore.evas.SoftwareX11_16(w=640, h=480)
+ canvas = ee.evas
+
+ bg = canvas.Rectangle(color="#ffffff")
+ bg.size = canvas.size
+ bg.show()
+
+ so = MyObject(canvas)
+ so.size = (100, 100)
+ so.center = canvas.rect.center
+ so.show()
+ so.callback_call("teste", 1234)
+
+ def resize_cb(ee):
+ ee.data["bg"].size = ee.evas.size
+ ee.data["so"].center = ee.evas.rect.center
+ ee.data["bg"] = bg
+ ee.data["so"] = so
+ ee.callback_resize = resize_cb
+
+ ee.show()
+ ecore.main_loop_begin()
+
+main()
+ecore.evas.shutdown()
+ecore.shutdown()
+evas.shutdown()
--- /dev/null
+#!/usr/bin/env python
+
+import ecore
+import ecore.evas
+
+ecore.init()
+ecore.evas.init()
+
+ee = ecore.evas.SoftwareX11_16(w=800, h=480)
+canvas = ee.evas
+
+bg = canvas.Rectangle(color="#ffffff")
+bg.size = canvas.size
+bg.show()
+ee.data["bg"] = bg
+
+img = canvas.Image(file="icon.png", size=(128, 128))
+img.center = canvas.rect.center
+img.data["step"] = 1
+img.show()
+ee.show()
+ee.data["img"] = img
+
+def mouse_in_cb(obj, event, a, b):
+ print "Mouse IN:", obj, event, a, b
+img.on_mouse_in_add(mouse_in_cb, 123, b=456)
+def mouse_down_cb(obj, event, xyz, abc):
+ print "Mouse Down:", obj, event, xyz, abc
+img.on_mouse_down_add(mouse_down_cb, 1234, abc=456)
+def mouse_move_cb(obj, event):
+ #print "Mouse Move:", obj, event
+ pass
+img.on_mouse_move_add(mouse_move_cb)
+def resize_cb(obj):
+ #print "Resized:", obj
+ pass
+img.on_resize_add(resize_cb)
+
+
+def key_down_cb(bg, event, img):
+ print "Key Down:", img, event
+ k = event.key
+ if k == "Escape":
+ ecore.main_loop_quit()
+ elif k == "Left":
+ x, y = img.pos
+ img.pos = (x - 1, y)
+ elif k == "Right":
+ x, y = img.pos
+ img.pos = (x + 1, y)
+ elif k == "Up":
+ x, y = img.pos
+ img.pos = (x, y - 1)
+ elif k == "Down":
+ x, y = img.pos
+ img.pos = (x, y + 1)
+bg.on_key_down_add(key_down_cb, img)
+
+
+def resize_cb(ee):
+ r = ee.evas.rect
+ ee.data["bg"].size = r.size
+ ee.data["img"].center = r.center
+ee.callback_resize = resize_cb
+
+
+def anim(canvas, img):
+ w = img.size[0]
+ step = img.data["step"]
+ if not (32 <= w + step <= 128):
+ img.data["step"] = -step
+ w += step
+ img.size = (w, w)
+ img.fill = (0, 0, w, w)
+ return True
+ecore.animator_add(anim, canvas, img)
+
+bg.focus = True
+ecore.main_loop_begin()