from JyScript import *
s = ''
angle = 0
px, py = 0, 0
def draw(p):
p.beginpage()
p.center()
p.scale(50)
p.setdeg()
p.gsave()
p.rotate(angle)
p.box(-1.5, -1.5, 3, 3)
p.fill(1, 0, 0)
p.placemark(mark)
p.grestore()
p.newpath()
p.setcolor(0, 0, 1, 0.5)
p.setfont(36)
p.moveto(-1.5, 0)
p.show(s)
if len(s) > 0:
p.newpath()
p.moveto(-1.5, -1)
pt = '(%.1f, %.1f)' % (px, py)
p.show(pt)
p.placemoveable(point)
p.endpage()
def step():
global angle
angle += 1
refresh()
settimer(25, step)
def click(x, y):
global s, px, py
px, py = x, y
s = 'click'
def enter(x, y):
global s, px, py
px, py = x, y
s = 'enter'
starttimer()
def exit(x, y):
global s, px, py
px, py = x, y
s = 'exit'
stoptimer()
def press(x, y):
global s, px, py
px, py = x, y
s = 'press'
def release(x, y):
global s, px, py
px, py = x, y
s = 'release'
def drag(x, y):
global s, px, py
px, py = x, y
s = 'drag'
def move(x, y):
global s, px, py
px, py = x, y
s = 'move'
mark = Mark()
panel = JyPanel([300, 300, draw])
panel.onclick(click)
panel.onenter(enter, mark)
panel.onexit(exit, mark)
panel.onpress(press, mark)
panel.onrelease(release, mark)
panel.ondrag(drag, mark)
panel.onmove(move, mark)
def movepoint(point, x, y):
point.setpoint(x,y)
point = Moveablepoint(-1, -2, movepoint)
point.setfillcolor(0, 1, 0)
panel.addmoveable(point)
openframe(panel)
|