class EnvelopeFrame(wx.Frame): def __init__(self, parent, size=(600, 300)): wx.Frame.__init__(self, parent, -1, "Envelope Shape", size=size) self.parent = parent self.env = None menuBar = wx.MenuBar() self.menu = wx.Menu() self.menu.Append(200, 'Close\tCtrl+W', "") menuBar.Append(self.menu, "&File") self.SetMenuBar(menuBar) self.Bind(wx.EVT_CLOSE, self.handleClose) self.Bind(wx.EVT_MENU, self.handleClose, id=200) self.graph = Grapher(self, init=[(0.0,0),(0.3,1),(0.7,1),(1.0,0)], mode=1) self.Show(False) def setEnv(self, env): self.env = env self.env.replace(self.graph.getValues()) self.graph.outFunction = self.env.replace def handleClose(self, event): self.Hide() def save(self): return {'envelope': self.graph.getPoints()} def load(self, dict): self.graph.setInitPoints(dict.get('envelope', [(0.0,0),(0.3,1),(0.7,1),(1.0,0)])) if self.env != None: self.env.replace(self.graph.getValues())