Ejemplo n.º 1
0
class PanelScript(wx.Panel):
    def __init__(self, parent):
        wx.Panel.__init__(self, parent)
        self.intro = "Interactive Phase Retrieval Suite"
        self.shell = Shell(parent=self, id=wx.ID_ANY, introText=self.intro)
        self.shell.zoom(2)
        self.shell.Bind(wx.EVT_KEY_DOWN, self.OnKeyDown, self.shell)
        self.ih = 0
        sizer = wx.BoxSizer(wx.VERTICAL)
        sizer.Add(self.shell,
                  1,
                  flag=wx.EXPAND | wx.LEFT | wx.RIGHT | wx.TOP,
                  border=2)
        sizer.Fit(self)
        self.SetSizer(sizer)
        self.SetAutoLayout(True)
        self.Layout()

    def OnKeyDown(self, event):
        if self.shell.AutoCompActive():
            event.Skip()
            return
        key = event.GetKeyCode()
        if key == wx.WXK_RETURN:
            self.ih = 0
            self.shell.processLine()
            self.shell.clearCommand()
        elif key == wx.WXK_UP:
            if self.ih < len(self.shell.history):
                self.ih += 1
                self.shell.clearCommand()
                self.shell.write(self.shell.history[(self.ih - 1)])
        elif key == wx.WXK_DOWN:
            self.shell.clearCommand()
            self.ih -= 1
            if self.ih > 0:
                self.shell.write(self.shell.history[self.ih - 1])
            else:
                self.ih = 0
        else:
            event.Skip()