]> git.saurik.com Git - wxWidgets.git/blob - wxPython/demo/viewer_basics.py
PalmOS headers have ssize_t with no sign of it so we have to assume they are always...
[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