From: daid Date: Wed, 2 May 2012 15:15:55 +0000 (+0200) Subject: Very basic syntax highlight for comments in the GCode editor for start/end code. X-Git-Tag: RC3~13^2~5^2~3 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=a5237fea44184511903c4d88b7ee0621b62e1d1e;p=cura.git Very basic syntax highlight for comments in the GCode editor for start/end code. --- diff --git a/Cura/gui/alterationPanel.py b/Cura/gui/alterationPanel.py index c102f19b..2fa320c4 100644 --- a/Cura/gui/alterationPanel.py +++ b/Cura/gui/alterationPanel.py @@ -1,4 +1,4 @@ -import wx +import wx, wx.stc import sys,math,threading,os from util import profile @@ -10,12 +10,21 @@ class alterationPanel(wx.Panel): self.alterationFileList = ['start.gcode', 'end.gcode', 'support_start.gcode', 'support_end.gcode', 'nextobject.gcode', 'replace.csv'] self.currentFile = None - self.textArea = wx.TextCtrl(self, style=wx.TE_MULTILINE|wx.TE_DONTWRAP|wx.TE_PROCESS_TAB) - self.textArea.SetFont(wx.Font(wx.SystemSettings.GetFont(wx.SYS_ANSI_VAR_FONT).GetPointSize(), wx.FONTFAMILY_MODERN, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL)) + #self.textArea = wx.TextCtrl(self, style=wx.TE_MULTILINE|wx.TE_DONTWRAP|wx.TE_PROCESS_TAB) + #self.textArea.SetFont(wx.Font(wx.SystemSettings.GetFont(wx.SYS_ANSI_VAR_FONT).GetPointSize(), wx.FONTFAMILY_MODERN, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL)) + self.textArea = wx.stc.StyledTextCtrl(self) + self.textArea.SetLexer(wx.stc.STC_LEX_CONTAINER) self.list = wx.ListBox(self, choices=self.alterationFileList, style=wx.LB_SINGLE) self.list.SetSelection(0) self.Bind(wx.EVT_LISTBOX, self.OnSelect, self.list) self.textArea.Bind(wx.EVT_KILL_FOCUS, self.OnFocusLost, self.textArea) + self.textArea.Bind(wx.stc.EVT_STC_STYLENEEDED, self.OnStyle) + + fontSize = wx.SystemSettings.GetFont(wx.SYS_ANSI_VAR_FONT).GetPointSize() + fontName = wx.Font(wx.SystemSettings.GetFont(wx.SYS_ANSI_VAR_FONT).GetPointSize(), wx.FONTFAMILY_MODERN, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL).GetFaceName() + self.textArea.SetStyleBits(5) + self.textArea.StyleSetSpec(wx.stc.STC_STYLE_DEFAULT, "face:%s,size:%d" % (fontName, fontSize)) + self.textArea.StyleSetSpec(1, "fore:#008000,face:%s,size:%d" % (fontName, fontSize)) sizer = wx.GridBagSizer() sizer.Add(self.list, (0,0), span=(1,1), flag=wx.EXPAND) @@ -32,9 +41,24 @@ class alterationPanel(wx.Panel): self.currentFile = self.list.GetSelection() def loadFile(self, filename): - self.textArea.SetValue(profile.getAlterationFile(filename)) + #self.textArea.SetValue(profile.getAlterationFile(filename)) + self.textArea.SetText(profile.getAlterationFile(filename)) def OnFocusLost(self, e): if self.currentFile == self.list.GetSelection(): - profile.setAlterationFile(self.alterationFileList[self.list.GetSelection()], self.textArea.GetValue()) + #profile.setAlterationFile(self.alterationFileList[self.list.GetSelection()], self.textArea.GetValue()) + profile.setAlterationFile(self.alterationFileList[self.list.GetSelection()], self.textArea.GetText()) + + def OnStyle(self, e): + #for lineNr in xrange(0, + lineNr = self.textArea.LineFromPosition(self.textArea.GetEndStyled()) + while self.textArea.PositionFromLine(lineNr) > -1: + line = self.textArea.GetLine(lineNr) + self.textArea.StartStyling(self.textArea.PositionFromLine(lineNr), 31) + self.textArea.SetStyling(self.textArea.LineLength(lineNr), wx.stc.STC_STYLE_DEFAULT) + if ';' in line: + pos = line.index(';') + self.textArea.StartStyling(self.textArea.PositionFromLine(lineNr) + pos, 31) + self.textArea.SetStyling(self.textArea.LineLength(lineNr) - pos, 1) + lineNr += 1