1 #!/usr/bin/env python
\r
7 class Widget(OpenGL.Tk.RawOpengl):
\r
8 def __init__(self, master, engine, *args, **kw):
\r
9 super(Widget, self).__init__(master, *args, **kw)
\r
11 self.bind('<Map>', self.onDraw)
\r
12 self.bind('<Expose>', self.onDraw)
\r
13 self.bind('<Configure>', self.onResize)
\r
14 self.bind('<ButtonPress-1>', lambda e: self.engine.onLeftDown(e.x, e.y) and self.onDraw())
\r
15 self.bind('<ButtonRelease-1>', lambda e: self.engine.onLeftUp(e.x, e.y) and self.onDraw())
\r
16 self.bind('<B1-Motion>', lambda e: self.engine.onMotion(e.x, e.y) and self.onDraw())
\r
17 self.bind('<ButtonPress-2>', lambda e: self.engine.onMiddleDown(e.x, e.y) and self.onDraw())
\r
18 self.bind('<ButtonRelease-2>', lambda e: self.engine.onMiddleUp(e.x, e.y) and self.onDraw())
\r
19 self.bind('<B2-Motion>', lambda e: self.engine.onMotion(e.x, e.y) and self.onDraw())
\r
20 self.bind('<ButtonPress-3>', lambda e: self.engine.onRightDown(e.x, e.y) and self.onDraw())
\r
21 self.bind('<ButtonRelease-3>', lambda e: self.engine.onRightUp(e.x, e.y) and self.onDraw())
\r
22 self.bind('<B3-Motion>', lambda e: self.engine.onMotion(e.x, e.y) and self.onDraw())
\r
24 def onDraw(self, *dummy):
\r
25 self.tk.call(self._w, 'makecurrent')
\r
26 self.update_idletasks()
\r
28 self.tk.call(self._w, 'swapbuffers')
\r
30 def onResize(self, event):
\r
31 self.engine.onResize(event.width, event.height)
\r