Show More
@@ -30,9 +30,7 b' import wx.lib.newevent' | |||
|
30 | 30 | |
|
31 | 31 | import re |
|
32 | 32 | import sys |
|
33 | import os | |
|
34 | 33 | import locale |
|
35 | import time | |
|
36 | 34 | from StringIO import StringIO |
|
37 | 35 | try: |
|
38 | 36 | import IPython |
@@ -76,35 +74,39 b' class WxNonBlockingIPShell(NonBlockingIPShell):' | |||
|
76 | 74 | class WxConsoleView(stc.StyledTextCtrl): |
|
77 | 75 | ''' |
|
78 | 76 | Specialized styled text control view for console-like workflow. |
|
79 |
We use here a scintilla frontend thus it can be reused in any GUI t |
|
|
80 | scintilla with less work. | |
|
77 | We use here a scintilla frontend thus it can be reused in any GUI that | |
|
78 | supports scintilla with less work. | |
|
81 | 79 | |
|
82 |
@cvar ANSI_COLORS_BLACK: Mapping of terminal colors to X11 names. |
|
|
80 | @cvar ANSI_COLORS_BLACK: Mapping of terminal colors to X11 names. | |
|
81 | (with Black background) | |
|
83 | 82 | @type ANSI_COLORS_BLACK: dictionary |
|
84 | 83 | |
|
85 |
@cvar ANSI_COLORS_WHITE: Mapping of terminal colors to X11 names. |
|
|
84 | @cvar ANSI_COLORS_WHITE: Mapping of terminal colors to X11 names. | |
|
85 | (with White background) | |
|
86 | 86 | @type ANSI_COLORS_WHITE: dictionary |
|
87 | 87 | |
|
88 | 88 | @ivar color_pat: Regex of terminal color pattern |
|
89 | 89 | @type color_pat: _sre.SRE_Pattern |
|
90 | 90 | ''' |
|
91 |
ANSI_STYLES_BLACK |
|
|
92 |
|
|
|
93 |
|
|
|
94 |
|
|
|
95 |
|
|
|
96 |
|
|
|
97 |
|
|
|
98 | '1;36': [14,'LIGHT STEEL BLUE'], '1;37': [15,'YELLOW']} | |
|
99 | ||
|
100 | ANSI_STYLES_WHITE ={'0;30': [0,'BLACK'], '0;31': [1,'RED'], | |
|
101 | '0;32': [2,'GREEN'], '0;33': [3,'BROWN'], | |
|
102 |
|
|
|
103 |
|
|
|
104 |
|
|
|
105 |
|
|
|
106 |
|
|
|
107 |
|
|
|
91 | ANSI_STYLES_BLACK={'0;30': [0,'WHITE'], '0;31': [1,'RED'], | |
|
92 | '0;32': [2,'GREEN'], '0;33': [3,'BROWN'], | |
|
93 | '0;34': [4,'BLUE'], '0;35': [5,'PURPLE'], | |
|
94 | '0;36': [6,'CYAN'], '0;37': [7,'LIGHT GREY'], | |
|
95 | '1;30': [8,'DARK GREY'], '1;31': [9,'RED'], | |
|
96 | '1;32': [10,'SEA GREEN'], '1;33': [11,'YELLOW'], | |
|
97 | '1;34': [12,'LIGHT BLUE'], '1;35': | |
|
98 | [13,'MEDIUM VIOLET RED'], | |
|
99 | '1;36': [14,'LIGHT STEEL BLUE'],'1;37': [15,'YELLOW']} | |
|
100 | ||
|
101 | ANSI_STYLES_WHITE={'0;30': [0,'BLACK'], '0;31': [1,'RED'], | |
|
102 | '0;32': [2,'GREEN'], '0;33': [3,'BROWN'], | |
|
103 | '0;34': [4,'BLUE'], '0;35': [5,'PURPLE'], | |
|
104 | '0;36': [6,'CYAN'], '0;37': [7,'LIGHT GREY'], | |
|
105 | '1;30': [8,'DARK GREY'], '1;31': [9,'RED'], | |
|
106 | '1;32': [10,'SEA GREEN'], '1;33': [11,'YELLOW'], | |
|
107 | '1;34': [12,'LIGHT BLUE'], '1;35': | |
|
108 | [13,'MEDIUM VIOLET RED'], | |
|
109 | '1;36': [14,'LIGHT STEEL BLUE'],'1;37': [15,'YELLOW']} | |
|
108 | 110 | |
|
109 | 111 | def __init__(self,parent,prompt,intro="",background_color="BLACK", |
|
110 | 112 | pos=wx.DefaultPosition, ID = -1, size=wx.DefaultSize, |
@@ -451,13 +453,14 b' class WxConsoleView(stc.StyledTextCtrl):' | |||
|
451 | 453 | #print pt |
|
452 | 454 | #self.Refresh(False) |
|
453 | 455 | |
|
454 |
class |
|
|
456 | class IPShellWidget(wx.Panel): | |
|
455 | 457 | ''' |
|
456 | 458 | This is wx.Panel that embbed the IPython Thread and the wx.StyledTextControl |
|
457 |
If you want to port this to any other GUI toolkit, just replace the |
|
|
458 |
by YOURGUIConsoleView and make YOURGUIIPythonView derivate |
|
|
459 | I've choosed to derivate from a wx.Panel because it seems to be ore usefull | |
|
460 | Any idea to make it more 'genric' welcomed. | |
|
459 | If you want to port this to any other GUI toolkit, just replace the | |
|
460 | WxConsoleView by YOURGUIConsoleView and make YOURGUIIPythonView derivate | |
|
461 | from whatever container you want. I've choosed to derivate from a wx.Panel | |
|
462 | because it seems to be more useful | |
|
463 | Any idea to make it more 'generic' welcomed. | |
|
461 | 464 | ''' |
|
462 | 465 | |
|
463 | 466 | def __init__(self, parent, ask_exit_handler=None, intro=None, |
@@ -514,9 +517,6 b' class WxIPythonViewPanel(wx.Panel):' | |||
|
514 | 517 | self.cur_state = 'IDLE' |
|
515 | 518 | self.pager_state = 'DONE' |
|
516 | 519 | |
|
517 | def __del__(self): | |
|
518 | WxConsoleView.__del__() | |
|
519 | ||
|
520 | 520 | #---------------------- IPython Thread Management ------------------------ |
|
521 | 521 | def stateDoExecuteLine(self): |
|
522 | 522 | #print >>sys.__stdout__,"command:",self.getCurrentLine() |
@@ -703,4 +703,25 b' class WxIPythonViewPanel(wx.Panel):' | |||
|
703 | 703 | Define a new status tracker |
|
704 | 704 | ''' |
|
705 | 705 | self.updateStatusTracker = func |
|
706 | ||
|
706 | ||
|
707 | ||
|
708 | if __name__ == '__main__': | |
|
709 | # Some simple code to test the shell widget. | |
|
710 | class MainWindow(wx.Frame): | |
|
711 | def __init__(self, parent, id, title): | |
|
712 | wx.Frame.__init__(self, parent, id, title, size=(300,250)) | |
|
713 | self._sizer = wx.BoxSizer(wx.VERTICAL) | |
|
714 | self.shell = IPShellWidget(self) | |
|
715 | self._sizer.Add(self.shell, 1, wx.EXPAND) | |
|
716 | self.SetSizer(self._sizer) | |
|
717 | self.SetAutoLayout(1) | |
|
718 | self.Show(True) | |
|
719 | ||
|
720 | app = wx.PySimpleApp() | |
|
721 | frame = MainWindow(None, wx.ID_ANY, 'Ipython') | |
|
722 | frame.SetSize((780, 460)) | |
|
723 | shell = frame.shell | |
|
724 | ||
|
725 | app.MainLoop() | |
|
726 | ||
|
727 |
@@ -5,7 +5,7 b' import wx.aui' | |||
|
5 | 5 | import wx.py |
|
6 | 6 | from wx.lib.wordwrap import wordwrap |
|
7 | 7 | |
|
8 |
from ipython_view import |
|
|
8 | from ipython_view import IPShellWidget | |
|
9 | 9 | from ipython_history import * |
|
10 | 10 | |
|
11 | 11 | __version__ = 0.8 |
@@ -20,7 +20,8 b' __license__ = "BSD"' | |||
|
20 | 20 | class MyFrame(wx.Frame): |
|
21 | 21 | """Creating one main frame for our |
|
22 | 22 | application with movables windows""" |
|
23 |
def __init__(self, parent=None, id=-1, title="WxIPython", |
|
|
23 | def __init__(self, parent=None, id=-1, title="WxIPython", | |
|
24 | pos=wx.DefaultPosition, | |
|
24 | 25 | size=(800, 600), style=wx.DEFAULT_FRAME_STYLE): |
|
25 | 26 | wx.Frame.__init__(self, parent, id, title, pos, size, style) |
|
26 | 27 | self._mgr = wx.aui.AuiManager() |
@@ -31,7 +32,7 b' class MyFrame(wx.Frame):' | |||
|
31 | 32 | #create differents panels and make them persistant |
|
32 | 33 | self.history_panel = IPythonHistoryPanel(self) |
|
33 | 34 | |
|
34 |
self.ipython_panel = |
|
|
35 | self.ipython_panel = IPShellWidget(self,self.OnExitDlg, | |
|
35 | 36 | background_color = "BLACK") |
|
36 | 37 | |
|
37 | 38 | #self.ipython_panel = WxIPythonViewPanel(self,self.OnExitDlg, |
General Comments 0
You need to be logged in to leave comments.
Login now