from wxPython.wx import *

class MainFrame(wxFrame):
		def __init__(self):
			wxFrame.__init__(self, None, -1, "EVT_MOTION Test")

			self.SetSize(wxSize(400, 380))
			self.panel = wxPanel (self, -1)

			EVT_CLOSE(self, self.OnCloseWindow)
			EVT_MOTION (self.panel, self.panel_motion)
			EVT_LEFT_DOWN (self.panel, self.panel_left_down)
			EVT_LEFT_UP (self.panel, self.panel_left_up)

			self.button = wxButton (self.panel, -1, 'A Button', pos=(100,100))

			EVT_MOTION (self.button, self.button_motion)
			EVT_LEFT_DOWN (self.button, self.button_left_down)
			EVT_LEFT_UP (self.button, self.button_left_up)
			EVT_BUTTON (self.button, self.button.GetId (), self.button_clicked)
			
		def OnCloseWindow(self, event):
			self.Destroy()

		def panel_motion (self, event):
			print 'Panel motion'
			
		def panel_left_down (self, event):
			print 'Panel left down'
			
		def panel_left_up (self, event):
			print 'Panel left up'
			
		def button_motion (self, event):
			print 'Button motion'
			
		def button_left_down (self, event):
			print 'Button left down'
			
		def button_left_up (self, event):
			print 'Button left up'
			
		def button_clicked (self, event):
			print 'Button clicked'
			
class TestApp(wxApp):
	def OnInit(self):
		self.frame = MainFrame()
		self.frame.Show(True)
		self.SetTopWindow(self.frame)
		return True

app = TestApp(0)
app.MainLoop()

