#!/usr/bin/env python import evas import ecore import ecore.evas import sys pool = [] def cleaner_cb(cell, ev, *a, **ka): while len(pool): dot = pool.pop() dot.delete() def mousedown_cb(cell, ev, *a, **ka): x = ev.position.canvas.x y = ev.position.canvas.y dot = canvas.Rectangle(size=(5,5), pos=(x,y), color=(0, 255, 0, 255)) dot.pass_events_set(True) print "Down: ("+str(x)+", "+str(y)+")" dot.show() pool.append(dot) return True def mousemove_cb(cell, ev, *a, **ka): x = ev.position.canvas.x y = ev.position.canvas.y dot = canvas.Rectangle(size=(2,2), pos=(x,y), color=(0, 0, 255, 128)) dot.pass_events_set(True) print "Move: ("+str(x)+", "+str(y)+")" dot.show() pool.append(dot) return True def mouseup_cb(cell, ev, *a, **ka): x = ev.position.canvas.x y = ev.position.canvas.y dot = canvas.Rectangle(size=(5,5), pos=(x,y), color=(255, 255, 255, 255)) dot.pass_events_set(True) print "Up: ("+str(x)+", "+str(y)+")" dot.show() pool.append(dot) return True def try_to_put_a_screen(ee, filename): screen = canvas.Image() screen.file_set(filename) w,h = ee.size screen.move(0,0) screen.resize(w,h) screen.fill_set(0,0,w, h) screen.pass_events_set(True) return screen if __name__ == '__main__': ee = ecore.evas.SoftwareX11(w=480, h=590) ee.title_set("Touch Test") canvas = ee.evas bg = canvas.Rectangle(color=(0, 0, 0, 255)) bg.size = canvas.size bg.propagate_events = True bg.on_mouse_down_add(mousedown_cb) bg.on_mouse_up_add(mouseup_cb) bg.on_mouse_move_add(mousemove_cb) if len(sys.argv) >= 2: screen = try_to_put_a_screen(ee, sys.argv[1]) screen.show() cleaner = canvas.Rectangle(size=(50,50), pos=(50,0), color=(255, 255, 255, 255)) cleaner.on_mouse_down_add(cleaner_cb) bg.show() cleaner.show() ee.show() ecore.main_loop_begin()