]> git.saurik.com Git - wxWidgets.git/blob - wxPython/demo/viewer_basics.py
Added new event binders
[wxWidgets.git] / wxPython / demo / viewer_basics.py
1 # 11/15/2003 - Jeff Grimmett (grimmtooth@softhome.net)
2 #
3 # o Updated for wx namespace
4 # o No idea what this does.
5 #
6
7 import wx
8 import wx.lib.vtk as vtk
9
10 #---------------------------------------------------------------------------
11 class VtkFrame(wx.Frame):
12 """
13 Simple example VTK window that contains a cone.
14 """
15 def __init__(self, parent, id, title):
16 wx.Frame.__init__(self, parent, id, title, size=(450, 300))
17 win = vtk.VTKRenderWindow(self, -1)
18
19 renWin = win.GetRenderWindow()
20
21 ren = vtk.vtkRenderer()
22 renWin.AddRenderer(ren)
23 cone = vtk.vtkConeSource()
24 coneMapper = vtk.vtkPolyDataMapper()
25 coneMapper.SetInput(cone.GetOutput())
26 coneActor = vtk.vtkActor()
27 coneActor.SetMapper(coneMapper)
28 ren.AddActor(coneActor)
29
30 #---------------------------------------------------------------------------
31 # Using new event binder
32 wx_EVT_ADD_CONE = wx.NewEventType()
33 EVT_ADD_CONE = wx.PyEventBinder(wx_EVT_ADD_CONE, 1)
34
35 class AddCone(wx.PyEvent):
36 def __init__(self):
37 wx.PyEvent.__init__(self)
38 self.SetEventType(wx_EVT_ADD_CONE)
39
40
41 class HiddenCatcher(wx.Frame):
42 """
43 The "catcher" frame in the second thread.
44 It is invisible. It's only job is to receive
45 Events from the main thread, and create
46 the appropriate windows.
47 """
48 def __init__(self):
49 wx.Frame.__init__(self, None, -1, '')
50 self.Bind(EVT_ADD_CONE, self.AddCone)
51
52 def AddCone(self,evt):
53 add_cone()
54
55
56 #---------------------------------------------------------------------------
57
58 class SecondThreadApp(wx.App):
59 """
60 wxApp that lives in the second thread.
61 """
62 def OnInit(self):
63 catcher = HiddenCatcher()
64 #self.SetTopWindow(catcher)
65 self.catcher = catcher
66 return True
67
68 #---------------------------------------------------------------------------
69
70 def add_cone():
71 frame = VtkFrame(None, -1, "Cone")
72 frame.Show(True)
73