~skavhaug/fenics-viper/devel

« back to all changes in this revision

Viewing changes to src/demo/test_wx_viper_frame.py

  • Committer: Arve Knudsen
  • Date: 2008-12-05 10:54:13 UTC
  • Revision ID: arvenk@simula.no-20081205105413-t82xjh1y7yahhx6g
Improve demo

Show diffs side-by-side

added added

removed removed

Lines of Context:
14
14
                "Outline",
15
15
                "No outline",)
16
16
 
17
 
class wxViperFrame(wx.Frame):
18
 
    def __init__(self, parent = None, ID = -1, title="wx Viper Frame", size=wx.DefaultSize, pos=wx.DefaultPosition):
 
17
class Frame(wx.Frame):
 
18
    def __init__(self, parent = None, ID = -1, title="wx Viper Frame",
 
19
            size=wx.DefaultSize, pos=wx.DefaultPosition):
19
20
        wx.Frame.__init__(self, parent, ID, title, pos, size)
20
21
 
21
 
        self.Bind(wx.EVT_SIZE, self.OnSize)
 
22
        # self.Bind(wx.EVT_SIZE, self.OnSize)
22
23
        self.Bind(wx.EVT_CLOSE, self.OnQuit)
23
24
 
24
25
        self.Hide()
25
 
        self.OnInit()
26
26
        self.CenterOnScreen()
27
27
 
28
 
    def viperRefresh(self):
29
 
        vtk = self.viper.ren.GetVTKWindow()
30
 
        vtk.Render()
31
 
 
32
 
    def OnSize(self, event):
33
 
        self.Refresh()
34
 
        event.Skip()
35
 
 
36
 
    def OnQuit(self, event):
37
 
        dlg = wx.MessageDialog(None, "Are you sure you want to exit?",
38
 
                                  'Quit?', wx.YES_NO | wx.ICON_QUESTION)
39
 
        result = dlg.ShowModal()
40
 
        if result == wx.ID_NO:
41
 
            return
42
 
        dlg.Destroy()
43
 
        self.Destroy()
44
 
 
45
 
    def handleRadioSelection(self, event):
46
 
        self.viper.toggle_outline()
47
 
        self.viperRefresh()
48
 
 
49
 
    def OnInit(self):
 
28
 
50
29
        panel = wx.Panel(self, -1)
51
30
        
52
31
        #create object and viper
57
36
                                                   "data", "gauss_120.lut"))
58
37
        self.viper = vip = viper.Viper([viper.ScalarField(coords, square.cells(),
59
38
                                         scalars,actor_kwds={"lut": lut_fname})])
60
 
        vtk_win = wxVTKRenderWindow(panel, -1, size = wx.Size(640,480))
61
 
        vtk_win.GetRenderWindow().AddRenderer(vip.renderer)
 
39
        vip_win = viper.wx.Window(vip, parent=panel, size=wx.Size(640, 480))
62
40
 
63
41
        #create controls
64
 
        self.rb = rb = wx.RadioBox(panel, -1, radioOptions[0], wx.DefaultPosition, wx.DefaultSize,
65
 
                radioOptions[1:5], 2, wx.RA_SPECIFY_COLS)
 
42
        self.rb = rb = wx.RadioBox(panel, -1, radioOptions[0],
 
43
                wx.DefaultPosition, wx.DefaultSize, radioOptions[1:5], 2,
 
44
                wx.RA_SPECIFY_COLS)
66
45
        rb.Bind(wx.EVT_RADIOBOX, self.handleRadioSelection)
 
46
        rb.SetSelection(1)
67
47
        btn = wx.Button(panel, -1, "Done")
68
 
        self.Bind(wx.EVT_BUTTON, self.OnQuit, btn)
69
 
        rb.SetSelection(1)
70
 
 
71
 
        #layout various widgets
 
48
        btn.Bind(wx.EVT_BUTTON, self.OnQuit)
 
49
 
 
50
 
 
51
        # Lay out the panel
 
52
        pansizer = wx.BoxSizer(wx.VERTICAL)
 
53
        pansizer.Add(vip_win, 2, flag=wx.EXPAND, border=5)
 
54
        pansizer.Add(btn, 0, flag=wx.ALIGN_CENTER_HORIZONTAL|wx.ALL, border=5)
 
55
        pansizer.Add(rb, 0, flag=wx.ALIGN_CENTER_HORIZONTAL|wx.ALL, border=5)
 
56
        pansizer.Layout()
 
57
        panel.SetSizerAndFit(pansizer)
 
58
 
72
59
        sizer = wx.BoxSizer(wx.VERTICAL)
73
 
        sizer.Add(vtk_win, 2, flag = wx.EXPAND, border = 5)
74
 
        sizer.Add(btn, 0, flag = wx.ALIGN_CENTER_HORIZONTAL|wx.ALL, border = 5)
75
 
        sizer.Add(rb, 0, flag = wx.ALIGN_CENTER_HORIZONTAL|wx.ALL, border = 5)
76
 
        panel.SetSizerAndFit(sizer)
77
 
 
78
 
        self.Fit()
 
60
        sizer.Add(panel, 2, flag=wx.EXPAND)
79
61
        sizer.Layout()
 
62
        self.SetSizerAndFit(sizer)
 
63
 
 
64
    def viperRefresh(self):
 
65
        vtk = self.viper.ren.GetVTKWindow()
 
66
        vtk.Render()
 
67
 
 
68
    def OnQuit(self, event):
 
69
        dlg = wx.MessageDialog(self, "Are you sure you want to exit?",
 
70
                                  'Quit?', wx.YES_NO|wx.NO_DEFAULT|wx.ICON_QUESTION)
 
71
        result = dlg.ShowModal()
 
72
        if result == wx.ID_NO:
 
73
            return
 
74
        dlg.Destroy()
 
75
        self.Destroy()
 
76
 
 
77
    def handleRadioSelection(self, event):
 
78
        self.viper.toggle_outline()
 
79
        self.viperRefresh()
80
80
 
81
81
if __name__ == "__main__":
82
82
    app = wx.App(redirect = False)
83
 
    td = wxViperFrame()
 
83
    td = Frame()
84
84
    td.Show(True)
85
85
    app.MainLoop()
86
86