コード例 #1
0
    def CreateItem(self, parent):
        """Returns an IPythonShell Panel"""
        self._log = wx.GetApp().GetLog()
        self._log("[IPyShell][info] Creating IPythonShell instance for Shelf")
        #main_win = wx.GetApp().GetMainWindow()
        #parent.AddPage(self.history_panel,'IPythonHistory',False)

        splitter = wx.SplitterWindow(parent, -1, style=wx.SP_LIVE_UPDATE)

        self.history_panel = IPythonHistoryPanel(splitter)
        self.history_panel.setOptionTrackerHook(self.OptionSave)

        self.ipython_panel = IPShellWidget(splitter, background_color="BLACK")
        #user_ns=locals(),user_global_ns=globals(),)
        self.ipython_panel.setOptionTrackerHook(self.OptionSave)
        self.ipython_panel.setHistoryTrackerHook(self.history_panel.write)

        options_ipython = self.ipython_panel.getOptions()
        for key in options_ipython.keys():
            saved_value = profiler.Profile_Get('IPython.' + key)
            if saved_value is not None:
                options_ipython[key]['value'] = saved_value

        options_history = self.history_panel.getOptions()
        for key in options_history.keys():
            saved_value = profiler.Profile_Get('IPython.' + key)
            if saved_value is not None:
                options_history[key]['value'] = saved_value

        self.ipython_panel.reloadOptions(options_ipython)
        self.history_panel.reloadOptions(options_history)

        splitter.SetMinimumPaneSize(20)
        splitter.SplitVertically(self.ipython_panel, self.history_panel, -100)

        return splitter

        self._log("[IPyShell][info] IPythonShell succesfully created")
        return self.ipython_panel
コード例 #2
0
    def __init__(self,
                 parent=None,
                 id=-1,
                 title="WxIPython",
                 pos=wx.DefaultPosition,
                 size=(800, 600),
                 style=wx.DEFAULT_FRAME_STYLE,
                 sync_ok=False):
        wx.Frame.__init__(self, parent, id, title, pos, size, style)
        self._mgr = wx.aui.AuiManager()

        # notify PyAUI which frame to use
        self._mgr.SetManagedWindow(self)

        #create differents panels and make them persistant
        self.history_panel = IPythonHistoryPanel(self)

        self.history_panel.setOptionTrackerHook(self.optionSave)

        self.ipython_panel = IPShellWidget(self, background_color="BLACK")
        #self.ipython_panel    = IPShellWidget(self,background_color = "WHITE")
        if (sync_ok):
            self.ipython_panel2 = IPythonXController(self)
        else:
            self.ipython_panel2 = None
        self.ipython_panel.setHistoryTrackerHook(self.history_panel.write)
        self.ipython_panel.setStatusTrackerHook(self.updateStatus)
        self.ipython_panel.setAskExitHandler(self.OnExitDlg)
        self.ipython_panel.setOptionTrackerHook(self.optionSave)

        #Create a notebook to display different IPython shell implementations
        self.nb = wx.aui.AuiNotebook(self)

        self.optionLoad()

        self.statusbar = self.createStatus()
        self.createMenu()

        ########################################################################
        ### add the panes to the manager
        # main panels
        self._mgr.AddPane(self.nb, wx.CENTER, "IPython Shells")
        self.nb.AddPage(self.ipython_panel, "IPython0 Shell")
        if (sync_ok):
            self.nb.AddPage(self.ipython_panel2, "IPython1 Synchroneous Shell")

        self._mgr.AddPane(self.history_panel, wx.RIGHT, "IPython history")

        # now we specify some panel characteristics
        self._mgr.GetPane(self.ipython_panel).CaptionVisible(True)
        self._mgr.GetPane(self.history_panel).CaptionVisible(True)
        self._mgr.GetPane(self.history_panel).MinSize((200, 400))

        # tell the manager to "commit" all the changes just made
        self._mgr.Update()

        #global event handling
        self.Bind(wx.EVT_CLOSE, self.OnClose)
        self.Bind(wx.EVT_MENU, self.OnClose, id=wx.ID_EXIT)
        self.Bind(wx.EVT_MENU, self.OnShowIPythonPanel, id=wx.ID_HIGHEST + 1)
        self.Bind(wx.EVT_MENU, self.OnShowHistoryPanel, id=wx.ID_HIGHEST + 2)
        self.Bind(wx.EVT_MENU, self.OnShowAbout, id=wx.ID_HIGHEST + 3)
        self.Bind(wx.EVT_MENU, self.OnShowAllPanel, id=wx.ID_HIGHEST + 6)

        warn_text = 'Hello from IPython and wxPython.\n'
        warn_text += 'Please Note that this work is still EXPERIMENTAL\n'
        warn_text += 'It does NOT emulate currently all the IPython functions.\n'
        warn_text += "\nIf you use MATPLOTLIB with show() you'll need to deactivate the THREADING option.\n"
        if (not sync_ok):
            warn_text += "\n->No twisted package detected, IPython1 example deactivated."

        dlg = wx.MessageDialog(self, warn_text, 'Warning Box',
                               wx.OK | wx.ICON_INFORMATION)
        dlg.ShowModal()
        dlg.Destroy()