Show More
@@ -134,6 +134,44 b' class WxConsoleView(stc.StyledTextCtrl):' | |||||
134 | self.CmdKeyAssign(ord('B'), stc.STC_SCMOD_CTRL, stc.STC_CMD_ZOOMIN) |
|
134 | self.CmdKeyAssign(ord('B'), stc.STC_SCMOD_CTRL, stc.STC_CMD_ZOOMIN) | |
135 | self.CmdKeyAssign(ord('N'), stc.STC_SCMOD_CTRL, stc.STC_CMD_ZOOMOUT) |
|
135 | self.CmdKeyAssign(ord('N'), stc.STC_SCMOD_CTRL, stc.STC_CMD_ZOOMOUT) | |
136 |
|
136 | |||
|
137 | #We draw a line at position 80 | |||
|
138 | self.SetEdgeMode(stc.STC_EDGE_LINE) | |||
|
139 | self.SetEdgeColumn(80) | |||
|
140 | self.SetEdgeColour(wx.LIGHT_GREY) | |||
|
141 | ||||
|
142 | #self.SetViewWhiteSpace(True) | |||
|
143 | #self.SetViewEOL(True) | |||
|
144 | self.SetEOLMode(stc.STC_EOL_CRLF) | |||
|
145 | #self.SetWrapMode(stc.STC_WRAP_CHAR) | |||
|
146 | #self.SetWrapMode(stc.STC_WRAP_WORD) | |||
|
147 | self.SetBufferedDraw(True) | |||
|
148 | #self.SetUseAntiAliasing(True) | |||
|
149 | self.SetLayoutCache(stc.STC_CACHE_PAGE) | |||
|
150 | ||||
|
151 | self.EnsureCaretVisible() | |||
|
152 | ||||
|
153 | self.SetMargins(3,3) #text is moved away from border with 3px | |||
|
154 | # Suppressing Scintilla margins | |||
|
155 | self.SetMarginWidth(0,0) | |||
|
156 | self.SetMarginWidth(1,0) | |||
|
157 | self.SetMarginWidth(2,0) | |||
|
158 | ||||
|
159 | self.background_color = background_color | |||
|
160 | self.buildStyles() | |||
|
161 | ||||
|
162 | self.indent = 0 | |||
|
163 | self.prompt_count = 0 | |||
|
164 | self.color_pat = re.compile('\x01?\x1b\[(.*?)m\x02?') | |||
|
165 | ||||
|
166 | self.write(intro) | |||
|
167 | self.setPrompt(prompt) | |||
|
168 | self.showPrompt() | |||
|
169 | ||||
|
170 | self.autocomplete_mode = autocomplete_mode | |||
|
171 | ||||
|
172 | self.Bind(wx.EVT_KEY_DOWN, self._onKeypress) | |||
|
173 | ||||
|
174 | def buildStyles(self): | |||
137 | #we define platform specific fonts |
|
175 | #we define platform specific fonts | |
138 | if wx.Platform == '__WXMSW__': |
|
176 | if wx.Platform == '__WXMSW__': | |
139 | faces = { 'times': 'Times New Roman', |
|
177 | faces = { 'times': 'Times New Roman', | |
@@ -160,35 +198,12 b' class WxConsoleView(stc.StyledTextCtrl):' | |||||
160 | 'size2': 8, |
|
198 | 'size2': 8, | |
161 | } |
|
199 | } | |
162 |
|
200 | |||
163 | #We draw a line at position 80 |
|
|||
164 | self.SetEdgeMode(stc.STC_EDGE_LINE) |
|
|||
165 | self.SetEdgeColumn(80) |
|
|||
166 | self.SetEdgeColour(wx.LIGHT_GREY) |
|
|||
167 |
|
||||
168 | #self.SetViewWhiteSpace(True) |
|
|||
169 | #self.SetViewEOL(True) |
|
|||
170 | self.SetEOLMode(stc.STC_EOL_CRLF) |
|
|||
171 | #self.SetWrapMode(stc.STC_WRAP_CHAR) |
|
|||
172 | #self.SetWrapMode(stc.STC_WRAP_WORD) |
|
|||
173 | self.SetBufferedDraw(True) |
|
|||
174 | #self.SetUseAntiAliasing(True) |
|
|||
175 | self.SetLayoutCache(stc.STC_CACHE_PAGE) |
|
|||
176 |
|
||||
177 | self.EnsureCaretVisible() |
|
|||
178 |
|
||||
179 | self.SetMargins(3,3) #text is moved away from border with 3px |
|
|||
180 | # Suppressing Scintilla margins |
|
|||
181 | self.SetMarginWidth(0,0) |
|
|||
182 | self.SetMarginWidth(1,0) |
|
|||
183 | self.SetMarginWidth(2,0) |
|
|||
184 |
|
||||
185 | # make some styles |
|
201 | # make some styles | |
186 | if background_color != "BLACK": |
|
202 | if self.background_color != "BLACK": | |
187 | self.background_color = "WHITE" |
|
203 | self.background_color = "WHITE" | |
188 | self.SetCaretForeground("BLACK") |
|
204 | self.SetCaretForeground("BLACK") | |
189 | self.ANSI_STYLES = self.ANSI_STYLES_WHITE |
|
205 | self.ANSI_STYLES = self.ANSI_STYLES_WHITE | |
190 | else: |
|
206 | else: | |
191 | self.background_color = background_color |
|
|||
192 | self.SetCaretForeground("WHITE") |
|
207 | self.SetCaretForeground("WHITE") | |
193 | self.ANSI_STYLES = self.ANSI_STYLES_BLACK |
|
208 | self.ANSI_STYLES = self.ANSI_STYLES_BLACK | |
194 |
|
209 | |||
@@ -202,24 +217,19 b' class WxConsoleView(stc.StyledTextCtrl):' | |||||
202 | "fore:#FF0000,back:#0000FF,bold") |
|
217 | "fore:#FF0000,back:#0000FF,bold") | |
203 | self.StyleSetSpec(stc.STC_STYLE_BRACEBAD, |
|
218 | self.StyleSetSpec(stc.STC_STYLE_BRACEBAD, | |
204 | "fore:#000000,back:#FF0000,bold") |
|
219 | "fore:#000000,back:#FF0000,bold") | |
205 |
|
220 | |||
206 | for style in self.ANSI_STYLES.values(): |
|
221 | for style in self.ANSI_STYLES.values(): | |
207 | self.StyleSetSpec(style[0], "bold,fore:%s" % style[1]) |
|
222 | self.StyleSetSpec(style[0], "bold,fore:%s" % style[1]) | |
208 |
|
223 | |||
209 | ####################################################################### |
|
224 | ####################################################################### | |
210 |
|
225 | |||
211 | self.indent = 0 |
|
226 | def setBackgroundColor(self,color): | |
212 |
self. |
|
227 | self.background_color = color | |
213 | self.color_pat = re.compile('\x01?\x1b\[(.*?)m\x02?') |
|
228 | self.buildStyles() | |
214 |
|
||||
215 | self.write(intro) |
|
|||
216 | self.setPrompt(prompt) |
|
|||
217 | self.showPrompt() |
|
|||
218 |
|
229 | |||
219 | self.autocomplete_mode = autocomplete_mode |
|
230 | def getBackgroundColor(self,color): | |
|
231 | return self.background_color | |||
220 |
|
232 | |||
221 | self.Bind(wx.EVT_KEY_DOWN, self._onKeypress) |
|
|||
222 |
|
||||
223 | def asyncWrite(self, text): |
|
233 | def asyncWrite(self, text): | |
224 | ''' |
|
234 | ''' | |
225 | Write given text to buffer in an asynchroneous way. |
|
235 | Write given text to buffer in an asynchroneous way. | |
@@ -545,12 +555,15 b' class IPShellWidget(wx.Panel):' | |||||
545 |
|
555 | |||
546 | self.cout.write = self.text_ctrl.asyncWrite |
|
556 | self.cout.write = self.text_ctrl.asyncWrite | |
547 |
|
557 | |||
|
558 | option_text = wx.StaticText(self,-1,'Options:') | |||
548 | self.completion_option = wx.CheckBox(self, -1, "Scintilla completion") |
|
559 | self.completion_option = wx.CheckBox(self, -1, "Scintilla completion") | |
549 | self.completion_option.SetValue(False) |
|
560 | self.completion_option.SetValue(False) | |
550 | option_text = wx.StaticText(self,-1,'Options:') |
|
561 | self.background_option = wx.CheckBox(self, -1, "White background") | |
|
562 | self.background_option.SetValue(False) | |||
551 |
|
563 | |||
552 | self.text_ctrl.Bind(wx.EVT_KEY_DOWN, self.keyPress) |
|
564 | self.text_ctrl.Bind(wx.EVT_KEY_DOWN, self.keyPress) | |
553 |
self.Bind(wx.EVT_CHECKBOX, self.evtCheckOptionCompletion |
|
565 | self.completion_option.Bind(wx.EVT_CHECKBOX, self.evtCheckOptionCompletion) | |
|
566 | self.background_option.Bind(wx.EVT_CHECKBOX, self.evtCheckOptionBackgroundColor) | |||
554 |
|
567 | |||
555 | ### making the layout of the panel ### |
|
568 | ### making the layout of the panel ### | |
556 | sizer = wx.BoxSizer(wx.VERTICAL) |
|
569 | sizer = wx.BoxSizer(wx.VERTICAL) | |
@@ -560,7 +573,8 b' class IPShellWidget(wx.Panel):' | |||||
560 | option_sizer.AddMany([(10,15), |
|
573 | option_sizer.AddMany([(10,15), | |
561 | option_text, |
|
574 | option_text, | |
562 | (20,15), |
|
575 | (20,15), | |
563 | self.completion_option |
|
576 | self.completion_option, | |
|
577 | self.background_option, | |||
564 | ]) |
|
578 | ]) | |
565 | self.SetAutoLayout(True) |
|
579 | self.SetAutoLayout(True) | |
566 | sizer.Fit(self) |
|
580 | sizer.Fit(self) | |
@@ -753,7 +767,14 b' class IPShellWidget(wx.Panel):' | |||||
753 | else: |
|
767 | else: | |
754 | self.text_ctrl.setCompletionMethod('IPYTHON') |
|
768 | self.text_ctrl.setCompletionMethod('IPYTHON') | |
755 | self.text_ctrl.SetFocus() |
|
769 | self.text_ctrl.SetFocus() | |
756 |
|
770 | |||
|
771 | def evtCheckOptionBackgroundColor(self, event): | |||
|
772 | if event.IsChecked(): | |||
|
773 | self.text_ctrl.setBackgroundColor('WHITE') | |||
|
774 | else: | |||
|
775 | self.text_ctrl.setBackgroundColor('BLACK') | |||
|
776 | self.text_ctrl.SetFocus() | |||
|
777 | ||||
757 | #------------------------ Hook Section ----------------------------------- |
|
778 | #------------------------ Hook Section ----------------------------------- | |
758 | def updateHistoryTracker(self,command_line): |
|
779 | def updateHistoryTracker(self,command_line): | |
759 | ''' |
|
780 | ''' |
General Comments 0
You need to be logged in to leave comments.
Login now