pyMez.Code.FrontEnds.StyledTextCtrlPanel module
#Boa:FramePanel:StyledTextCtrlPanel import wx import wx.stc [wxID_STYLEDTEXTCTRLPANEL, wxID_STYLEDTEXTCTRLPANELSTYLEDTEXTCTRL1, ] = [wx.NewId() for _init_ctrls in range(2)] import keyword import wx import wx.stc as stc #import images #I don't where this module really is. I have just replaced the ref #---------------------------------------------------------------------- demoText = """\ ## This version of the editor has been set up to edit Python source ## code. Here is a copy of wxPython/demo/Main.py to play with. """ #---------------------------------------------------------------------- if wx.Platform == '__WXMSW__': faces = { 'times': 'Times New Roman', 'mono' : 'Courier New', 'helv' : 'Arial', 'other': 'Comic Sans MS', 'size' : 10, 'size2': 8, } elif wx.Platform == '__WXMAC__': faces = { 'times': 'Times New Roman', 'mono' : 'Monaco', 'helv' : 'Arial', 'other': 'Comic Sans MS', 'size' : 12, 'size2': 10, } else: faces = { 'times': 'Times', 'mono' : 'Courier', 'helv' : 'Helvetica', 'other': 'new century schoolbook', 'size' : 12, 'size2': 10, } #---------------------------------------------------------------------- class PythonSTC(stc.StyledTextCtrl): fold_symbols = 2 def __init__(self, parent, id, pos=wx.DefaultPosition, size=wx.DefaultSize, style=0,name=None): stc.StyledTextCtrl.__init__(self, parent, id, pos, size, style,name) self.CmdKeyAssign(ord('B'), stc.STC_SCMOD_CTRL, stc.STC_CMD_ZOOMIN) self.CmdKeyAssign(ord('N'), stc.STC_SCMOD_CTRL, stc.STC_CMD_ZOOMOUT) self.SetLexer(stc.STC_LEX_PYTHON) self.SetKeyWords(0, " ".join(keyword.kwlist)) self.SetProperty("fold", "1") self.SetProperty("tab.timmy.whinge.level", "1") self.SetMargins(0,0) self.SetViewWhiteSpace(False) #self.SetBufferedDraw(False) #self.SetViewEOL(True) #self.SetEOLMode(stc.STC_EOL_CRLF) #self.SetUseAntiAliasing(True) self.SetEdgeMode(stc.STC_EDGE_BACKGROUND) self.SetEdgeColumn(78) # Setup a margin to hold fold markers self.SetFoldFlags(16) ### WHAT IS THIS VALUE? WHAT ARE THE OTHER FLAGS? DOES IT MATTER? self.SetMarginType(2, stc.STC_MARGIN_SYMBOL) self.SetMarginMask(2, stc.STC_MASK_FOLDERS) self.SetMarginSensitive(2, True) self.SetMarginWidth(2, 12) if self.fold_symbols == 0: # Arrow pointing right for contracted folders, arrow pointing down for expanded self.MarkerDefine(stc.STC_MARKNUM_FOLDEROPEN, stc.STC_MARK_ARROWDOWN, "black", "black") self.MarkerDefine(stc.STC_MARKNUM_FOLDER, stc.STC_MARK_ARROW, "black", "black") self.MarkerDefine(stc.STC_MARKNUM_FOLDERSUB, stc.STC_MARK_EMPTY, "black", "black") self.MarkerDefine(stc.STC_MARKNUM_FOLDERTAIL, stc.STC_MARK_EMPTY, "black", "black") self.MarkerDefine(stc.STC_MARKNUM_FOLDEREND, stc.STC_MARK_EMPTY, "white", "black") self.MarkerDefine(stc.STC_MARKNUM_FOLDEROPENMID, stc.STC_MARK_EMPTY, "white", "black") self.MarkerDefine(stc.STC_MARKNUM_FOLDERMIDTAIL, stc.STC_MARK_EMPTY, "white", "black") elif self.fold_symbols == 1: # Plus for contracted folders, minus for expanded self.MarkerDefine(stc.STC_MARKNUM_FOLDEROPEN, stc.STC_MARK_MINUS, "white", "black") self.MarkerDefine(stc.STC_MARKNUM_FOLDER, stc.STC_MARK_PLUS, "white", "black") self.MarkerDefine(stc.STC_MARKNUM_FOLDERSUB, stc.STC_MARK_EMPTY, "white", "black") self.MarkerDefine(stc.STC_MARKNUM_FOLDERTAIL, stc.STC_MARK_EMPTY, "white", "black") self.MarkerDefine(stc.STC_MARKNUM_FOLDEREND, stc.STC_MARK_EMPTY, "white", "black") self.MarkerDefine(stc.STC_MARKNUM_FOLDEROPENMID, stc.STC_MARK_EMPTY, "white", "black") self.MarkerDefine(stc.STC_MARKNUM_FOLDERMIDTAIL, stc.STC_MARK_EMPTY, "white", "black") elif self.fold_symbols == 2: # Like a flattened tree control using circular headers and curved joins self.MarkerDefine(stc.STC_MARKNUM_FOLDEROPEN, stc.STC_MARK_CIRCLEMINUS, "white", "#404040") self.MarkerDefine(stc.STC_MARKNUM_FOLDER, stc.STC_MARK_CIRCLEPLUS, "white", "#404040") self.MarkerDefine(stc.STC_MARKNUM_FOLDERSUB, stc.STC_MARK_VLINE, "white", "#404040") self.MarkerDefine(stc.STC_MARKNUM_FOLDERTAIL, stc.STC_MARK_LCORNERCURVE, "white", "#404040") self.MarkerDefine(stc.STC_MARKNUM_FOLDEREND, stc.STC_MARK_CIRCLEPLUSCONNECTED, "white", "#404040") self.MarkerDefine(stc.STC_MARKNUM_FOLDEROPENMID, stc.STC_MARK_CIRCLEMINUSCONNECTED, "white", "#404040") self.MarkerDefine(stc.STC_MARKNUM_FOLDERMIDTAIL, stc.STC_MARK_TCORNERCURVE, "white", "#404040") elif self.fold_symbols == 3: # Like a flattened tree control using square headers self.MarkerDefine(stc.STC_MARKNUM_FOLDEROPEN, stc.STC_MARK_BOXMINUS, "white", "#808080") self.MarkerDefine(stc.STC_MARKNUM_FOLDER, stc.STC_MARK_BOXPLUS, "white", "#808080") self.MarkerDefine(stc.STC_MARKNUM_FOLDERSUB, stc.STC_MARK_VLINE, "white", "#808080") self.MarkerDefine(stc.STC_MARKNUM_FOLDERTAIL, stc.STC_MARK_LCORNER, "white", "#808080") self.MarkerDefine(stc.STC_MARKNUM_FOLDEREND, stc.STC_MARK_BOXPLUSCONNECTED, "white", "#808080") self.MarkerDefine(stc.STC_MARKNUM_FOLDEROPENMID, stc.STC_MARK_BOXMINUSCONNECTED, "white", "#808080") self.MarkerDefine(stc.STC_MARKNUM_FOLDERMIDTAIL, stc.STC_MARK_TCORNER, "white", "#808080") self.Bind(stc.EVT_STC_UPDATEUI, self.OnUpdateUI) self.Bind(stc.EVT_STC_MARGINCLICK, self.OnMarginClick) self.Bind(wx.EVT_KEY_DOWN, self.OnKeyPressed) # Make some styles, The lexer defines what each style is used for, we # just have to define what each style looks like. This set is adapted from # Scintilla sample property files. # Global default styles for all languages self.StyleSetSpec(stc.STC_STYLE_DEFAULT, "face:%(helv)s,size:%(size)d" % faces) self.StyleClearAll() # Reset all to be like the default # Global default styles for all languages self.StyleSetSpec(stc.STC_STYLE_DEFAULT, "face:%(helv)s,size:%(size)d" % faces) self.StyleSetSpec(stc.STC_STYLE_LINENUMBER, "back:#C0C0C0,face:%(helv)s,size:%(size2)d" % faces) self.StyleSetSpec(stc.STC_STYLE_CONTROLCHAR, "face:%(other)s" % faces) self.StyleSetSpec(stc.STC_STYLE_BRACELIGHT, "fore:#FFFFFF,back:#0000FF,bold") self.StyleSetSpec(stc.STC_STYLE_BRACEBAD, "fore:#000000,back:#FF0000,bold") # Python styles # Default self.StyleSetSpec(stc.STC_P_DEFAULT, "fore:#000000,face:%(helv)s,size:%(size)d" % faces) # Comments self.StyleSetSpec(stc.STC_P_COMMENTLINE, "fore:#007F00,face:%(other)s,size:%(size)d" % faces) # Number self.StyleSetSpec(stc.STC_P_NUMBER, "fore:#007F7F,size:%(size)d" % faces) # String self.StyleSetSpec(stc.STC_P_STRING, "fore:#7F007F,face:%(helv)s,size:%(size)d" % faces) # Single quoted string self.StyleSetSpec(stc.STC_P_CHARACTER, "fore:#7F007F,face:%(helv)s,size:%(size)d" % faces) # Keyword self.StyleSetSpec(stc.STC_P_WORD, "fore:#00007F,bold,size:%(size)d" % faces) # Triple quotes self.StyleSetSpec(stc.STC_P_TRIPLE, "fore:#7F0000,size:%(size)d" % faces) # Triple double quotes self.StyleSetSpec(stc.STC_P_TRIPLEDOUBLE, "fore:#7F0000,size:%(size)d" % faces) # Class name definition self.StyleSetSpec(stc.STC_P_CLASSNAME, "fore:#0000FF,bold,underline,size:%(size)d" % faces) # Function or method name definition self.StyleSetSpec(stc.STC_P_DEFNAME, "fore:#007F7F,bold,size:%(size)d" % faces) # Operators self.StyleSetSpec(stc.STC_P_OPERATOR, "bold,size:%(size)d" % faces) # Identifiers self.StyleSetSpec(stc.STC_P_IDENTIFIER, "fore:#000000,face:%(helv)s,size:%(size)d" % faces) # Comment-blocks self.StyleSetSpec(stc.STC_P_COMMENTBLOCK, "fore:#7F7F7F,size:%(size)d" % faces) # End of line where string is not closed #self.StyleSetSpec(stc.STC_P_STRINGEOL, "fore:#000000,face:%(mono)s,back:#E0C0E0,eol,size:%(size)d" % faces) self.SetCaretForeground("BLUE") # register some images for use in the AutoComplete box. self.RegisterImage(1, wx.ArtProvider.GetBitmap(wx.ART_NEW, size=(16,16))) self.RegisterImage(2, wx.ArtProvider.GetBitmap(wx.ART_NEW, size=(16,16))) self.RegisterImage(3, wx.ArtProvider.GetBitmap(wx.ART_COPY, size=(16,16))) def OnKeyPressed(self, event): if self.CallTipActive(): self.CallTipCancel() key = event.GetKeyCode() if key == 32 and event.ControlDown(): pos = self.GetCurrentPos() # Tips if event.ShiftDown(): self.CallTipSetBackground("yellow") self.CallTipShow(pos, 'lots of of text: blah, blah, blah\n\n' 'show some suff, maybe parameters..\n\n' 'fubar(param1, param2)') # Code completion else: #lst = [] #for x in range(50000): # lst.append('%05d' % x) #st = " ".join(lst) #print len(st) #self.AutoCompShow(0, st) kw = keyword.kwlist[:] kw.append("zzzzzz?2") kw.append("aaaaa?2") kw.append("__init__?3") kw.append("zzaaaaa?2") kw.append("zzbaaaa?2") kw.append("this_is_a_longer_value") #kw.append("this_is_a_much_much_much_much_much_much_much_longer_value") kw.sort() # Python sorts are case sensitive self.AutoCompSetIgnoreCase(False) # so this needs to match # Images are specified with a appended "?type" for i in range(len(kw)): if kw[i] in keyword.kwlist: kw[i] = kw[i] + "?1" self.AutoCompShow(0, " ".join(kw)) else: event.Skip() def OnUpdateUI(self, evt): # check for matching braces braceAtCaret = -1 braceOpposite = -1 charBefore = None caretPos = self.GetCurrentPos() if caretPos > 0: charBefore = self.GetCharAt(caretPos - 1) styleBefore = self.GetStyleAt(caretPos - 1) # check before if charBefore and chr(charBefore) in "[]{}()" and styleBefore == stc.STC_P_OPERATOR: braceAtCaret = caretPos - 1 # check after if braceAtCaret < 0: charAfter = self.GetCharAt(caretPos) styleAfter = self.GetStyleAt(caretPos) if charAfter and chr(charAfter) in "[]{}()" and styleAfter == stc.STC_P_OPERATOR: braceAtCaret = caretPos if braceAtCaret >= 0: braceOpposite = self.BraceMatch(braceAtCaret) if braceAtCaret != -1 and braceOpposite == -1: self.BraceBadLight(braceAtCaret) else: self.BraceHighlight(braceAtCaret, braceOpposite) #pt = self.PointFromPosition(braceOpposite) #self.Refresh(True, wxRect(pt.x, pt.y, 5,5)) #print pt #self.Refresh(False) def OnMarginClick(self, evt): # fold and unfold as needed if evt.GetMargin() == 2: if evt.GetShift() and evt.GetControl(): self.FoldAll() else: lineClicked = self.LineFromPosition(evt.GetPosition()) if self.GetFoldLevel(lineClicked) & stc.STC_FOLDLEVELHEADERFLAG: if evt.GetShift(): self.SetFoldExpanded(lineClicked, True) self.Expand(lineClicked, True, True, 1) elif evt.GetControl(): if self.GetFoldExpanded(lineClicked): self.SetFoldExpanded(lineClicked, False) self.Expand(lineClicked, False, True, 0) else: self.SetFoldExpanded(lineClicked, True) self.Expand(lineClicked, True, True, 100) else: self.ToggleFold(lineClicked) def FoldAll(self): lineCount = self.GetLineCount() expanding = True # find out if we are folding or unfolding for lineNum in range(lineCount): if self.GetFoldLevel(lineNum) & stc.STC_FOLDLEVELHEADERFLAG: expanding = not self.GetFoldExpanded(lineNum) break lineNum = 0 while lineNum < lineCount: level = self.GetFoldLevel(lineNum) if level & stc.STC_FOLDLEVELHEADERFLAG and \ (level & stc.STC_FOLDLEVELNUMBERMASK) == stc.STC_FOLDLEVELBASE: if expanding: self.SetFoldExpanded(lineNum, True) lineNum = self.Expand(lineNum, True) lineNum = lineNum - 1 else: lastChild = self.GetLastChild(lineNum, -1) self.SetFoldExpanded(lineNum, False) if lastChild > lineNum: self.HideLines(lineNum+1, lastChild) lineNum = lineNum + 1 def Expand(self, line, doExpand, force=False, visLevels=0, level=-1): lastChild = self.GetLastChild(line, level) line = line + 1 while line <= lastChild: if force: if visLevels > 0: self.ShowLines(line, line) else: self.HideLines(line, line) else: if doExpand: self.ShowLines(line, line) if level == -1: level = self.GetFoldLevel(line) if level & stc.STC_FOLDLEVELHEADERFLAG: if force: if visLevels > 1: self.SetFoldExpanded(line, True) else: self.SetFoldExpanded(line, False) line = self.Expand(line, doExpand, force, visLevels-1) else: if doExpand and self.GetFoldExpanded(line): line = self.Expand(line, True, force, visLevels-1) else: line = self.Expand(line, False, force, visLevels-1) else: line = line + 1 return line #---------------------------------------------------------------------- _USE_PANEL = 1 def runTest(frame, nb, log): if not _USE_PANEL: ed = p = PythonSTC(nb, -1) else: p = wx.Panel(nb, -1, style = wx.NO_FULL_REPAINT_ON_RESIZE) ed = PythonSTC(p, -1) s = wx.BoxSizer(wx.HORIZONTAL) s.Add(ed, 1, wx.EXPAND) p.SetSizer(s) p.SetAutoLayout(True) ed.SetText(demoText + open('Main.py').read()) ed.EmptyUndoBuffer() ed.Colourise(0, -1) # line numbers in the margin ed.SetMarginType(1, stc.STC_MARGIN_NUMBER) ed.SetMarginWidth(1, 25) return p #---------------------------------------------------------------------- overview = """\ <html><body> Once again, no docs yet. <b>Sorry.</b> But <a href="data/stc.h.html">this</a> and <a href="http://www.scintilla.org/ScintillaDoc.html">this</a> should be helpful. </body><html> """ class XMLSTC(stc.StyledTextCtrl): """ This is a modified StyledTextCtrl for xml. It has weirdness because it was adpated from a Python STC in wx examples.""" fold_symbols = 2 def __init__(self, parent, id, pos=wx.DefaultPosition, size=wx.DefaultSize, style=0,name=None): stc.StyledTextCtrl.__init__(self, parent, id, pos, size, style,name) self.CmdKeyAssign(ord('B'), stc.STC_SCMOD_CTRL, stc.STC_CMD_ZOOMIN) self.CmdKeyAssign(ord('N'), stc.STC_SCMOD_CTRL, stc.STC_CMD_ZOOMOUT) self.SetLexer(stc.STC_LEX_XML) #self.SetKeyWords(0, " ".join(keyword.kwlist)) self.SetProperty("fold", "1") self.SetProperty("tab.timmy.whinge.level", "1") self.SetMargins(0,0) #self.SetViewWhiteSpace(False) #self.SetBufferedDraw(False) #self.SetViewEOL(True) #self.SetEOLMode(stc.STC_EOL_CRLF) #self.SetUseAntiAliasing(True) self.SetEdgeMode(stc.STC_EDGE_BACKGROUND) self.SetEdgeColumn(78) # Setup a margin to hold fold markers self.SetFoldFlags(16) ### WHAT IS THIS VALUE? WHAT ARE THE OTHER FLAGS? DOES IT MATTER? self.SetMarginType(2, stc.STC_MARGIN_SYMBOL) self.SetMarginMask(2, stc.STC_MASK_FOLDERS) self.SetMarginSensitive(2, True) self.SetMarginWidth(2, 12) if self.fold_symbols == 0: # Arrow pointing right for contracted folders, arrow pointing down for expanded self.MarkerDefine(stc.STC_MARKNUM_FOLDEROPEN, stc.STC_MARK_ARROWDOWN, "black", "black") self.MarkerDefine(stc.STC_MARKNUM_FOLDER, stc.STC_MARK_ARROW, "black", "black") self.MarkerDefine(stc.STC_MARKNUM_FOLDERSUB, stc.STC_MARK_EMPTY, "black", "black") self.MarkerDefine(stc.STC_MARKNUM_FOLDERTAIL, stc.STC_MARK_EMPTY, "black", "black") self.MarkerDefine(stc.STC_MARKNUM_FOLDEREND, stc.STC_MARK_EMPTY, "white", "black") self.MarkerDefine(stc.STC_MARKNUM_FOLDEROPENMID, stc.STC_MARK_EMPTY, "white", "black") self.MarkerDefine(stc.STC_MARKNUM_FOLDERMIDTAIL, stc.STC_MARK_EMPTY, "white", "black") elif self.fold_symbols == 1: # Plus for contracted folders, minus for expanded self.MarkerDefine(stc.STC_MARKNUM_FOLDEROPEN, stc.STC_MARK_MINUS, "white", "black") self.MarkerDefine(stc.STC_MARKNUM_FOLDER, stc.STC_MARK_PLUS, "white", "black") self.MarkerDefine(stc.STC_MARKNUM_FOLDERSUB, stc.STC_MARK_EMPTY, "white", "black") self.MarkerDefine(stc.STC_MARKNUM_FOLDERTAIL, stc.STC_MARK_EMPTY, "white", "black") self.MarkerDefine(stc.STC_MARKNUM_FOLDEREND, stc.STC_MARK_EMPTY, "white", "black") self.MarkerDefine(stc.STC_MARKNUM_FOLDEROPENMID, stc.STC_MARK_EMPTY, "white", "black") self.MarkerDefine(stc.STC_MARKNUM_FOLDERMIDTAIL, stc.STC_MARK_EMPTY, "white", "black") elif self.fold_symbols == 2: # Like a flattened tree control using circular headers and curved joins self.MarkerDefine(stc.STC_MARKNUM_FOLDEROPEN, stc.STC_MARK_CIRCLEMINUS, "white", "#404040") self.MarkerDefine(stc.STC_MARKNUM_FOLDER, stc.STC_MARK_CIRCLEPLUS, "white", "#404040") self.MarkerDefine(stc.STC_MARKNUM_FOLDERSUB, stc.STC_MARK_VLINE, "white", "#404040") self.MarkerDefine(stc.STC_MARKNUM_FOLDERTAIL, stc.STC_MARK_LCORNERCURVE, "white", "#404040") self.MarkerDefine(stc.STC_MARKNUM_FOLDEREND, stc.STC_MARK_CIRCLEPLUSCONNECTED, "white", "#404040") self.MarkerDefine(stc.STC_MARKNUM_FOLDEROPENMID, stc.STC_MARK_CIRCLEMINUSCONNECTED, "white", "#404040") self.MarkerDefine(stc.STC_MARKNUM_FOLDERMIDTAIL, stc.STC_MARK_TCORNERCURVE, "white", "#404040") elif self.fold_symbols == 3: # Like a flattened tree control using square headers self.MarkerDefine(stc.STC_MARKNUM_FOLDEROPEN, stc.STC_MARK_BOXMINUS, "white", "#808080") self.MarkerDefine(stc.STC_MARKNUM_FOLDER, stc.STC_MARK_BOXPLUS, "white", "#808080") self.MarkerDefine(stc.STC_MARKNUM_FOLDERSUB, stc.STC_MARK_VLINE, "white", "#808080") self.MarkerDefine(stc.STC_MARKNUM_FOLDERTAIL, stc.STC_MARK_LCORNER, "white", "#808080") self.MarkerDefine(stc.STC_MARKNUM_FOLDEREND, stc.STC_MARK_BOXPLUSCONNECTED, "white", "#808080") self.MarkerDefine(stc.STC_MARKNUM_FOLDEROPENMID, stc.STC_MARK_BOXMINUSCONNECTED, "white", "#808080") self.MarkerDefine(stc.STC_MARKNUM_FOLDERMIDTAIL, stc.STC_MARK_TCORNER, "white", "#808080") self.Bind(stc.EVT_STC_UPDATEUI, self.OnUpdateUI) self.Bind(stc.EVT_STC_MARGINCLICK, self.OnMarginClick) self.Bind(wx.EVT_KEY_DOWN, self.OnKeyPressed) # Make some styles, The lexer defines what each style is used for, we # just have to define what each style looks like. This set is adapted from # Scintilla sample property files. # Global default styles for all languages self.StyleSetSpec(stc.STC_STYLE_DEFAULT, "face:%(helv)s,size:%(size)d" % faces) self.StyleClearAll() # Reset all to be like the default # Global default styles for all languages self.StyleSetSpec(stc.STC_STYLE_DEFAULT, "face:%(helv)s,size:%(size)d" % faces) self.StyleSetSpec(stc.STC_STYLE_LINENUMBER, "back:#C0C0C0,face:%(helv)s,size:%(size2)d" % faces) self.StyleSetSpec(stc.STC_STYLE_CONTROLCHAR, "face:%(other)s" % faces) #self.StyleSetSpec(stc.STC_STYLE_BRACELIGHT, "fore:#FFFFFF,back:#0000FF,bold") #self.StyleSetSpec(stc.STC_STYLE_BRACEBAD, "fore:#000000,back:#FF0000,bold") #styleidnames={wx.stc.STC_H_DEFAULT: 'Default', wx.stc.STC_H_TAG: 'Tag', wx.stc.STC_H_TAGUNKNOWN: 'Tag unknown', wx.stc.STC_H_ATTRIBUTE: 'Attribute', wx.stc.STC_H_NUMBER: 'Number', wx.stc.STC_H_DOUBLESTRING: 'Double quoted string', wx.stc.STC_H_SINGLESTRING:'Single quoted string', wx.stc.STC_H_OTHER: 'Other inside tag', wx.stc.STC_H_COMMENT: 'Comment', wx.stc.STC_H_ENTITY: 'Entity', wx.stc.STC_H_TAGEND: 'Tag end', wx.stc.STC_H_XMLSTART: 'XML start', wx.stc.STC_H_XMLEND: 'XML End'} ##TOD:This is the section I have to define the styles for in order to work # styles=['STC_H_ASP', 'STC_H_ASPAT', 'STC_H_ATTRIBUTE', 'STC_H_ATTRIBUTEUNKNOWN', # 'STC_H_CDATA', 'STC_H_COMMENT', 'STC_H_DEFAULT', 'STC_H_DOUBLESTRING', 'STC_H_ENTITY', # 'STC_H_NUMBER', 'STC_H_OTHER', 'STC_H_QUESTION', 'STC_H_SCRIPT', 'STC_H_SGML_1ST_PARAM', # 'STC_H_SGML_1ST_PARAM_COMMENT', 'STC_H_SGML_BLOCK_DEFAULT', 'STC_H_SGML_COMMAND', #'STC_H_SGML_COMMENT', 'STC_H_SGML_DEFAULT', 'STC_H_SGML_DOUBLESTRING', 'STC_H_SGML_ENTITY', #'STC_H_SGML_ERROR', 'STC_H_SGML_SIMPLESTRING', 'STC_H_SGML_SPECIAL', #'STC_H_SINGLESTRING', 'STC_H_TAG', 'STC_H_TAGEND', 'STC_H_TAGUNKNOWN', #'STC_H_VALUE', 'STC_H_XCCOMMENT', 'STC_H_XMLEND', 'STC_H_XMLSTART'] # XML styles, just taken from the above python sample # XML styles Mostly HTML styles # Default self.StyleSetSpec(stc.STC_H_DEFAULT, "fore:#000000,face:%(helv)s,size:%(size)d" % faces) # Comments self.StyleSetSpec(stc.STC_H_XCCOMMENT, "fore:#007F00,face:%(other)s,size:%(size)d" % faces) # Number self.StyleSetSpec(stc.STC_H_NUMBER, "fore:#007F7F,size:%(size)d" % faces) # String self.StyleSetSpec(stc.STC_H_ATTRIBUTE, "fore:#7F007F,face:%(helv)s,size:%(size)d" % faces) # Single quoted string self.StyleSetSpec(stc.STC_H_QUESTION, "fore:#7F007F,face:%(helv)s,size:%(size)d" % faces) # Keyword self.StyleSetSpec(stc.STC_H_ATTRIBUTEUNKNOWN, "fore:#00007F,bold,size:%(size)d" % faces) # Single quotes self.StyleSetSpec(stc.STC_H_SINGLESTRING, "fore:#7F0000,size:%(size)d" % faces) # double quotes self.StyleSetSpec(stc.STC_H_DOUBLESTRING, "fore:#7F0000,size:%(size)d" % faces) # Tag name definition self.StyleSetSpec(stc.STC_H_TAG, "fore:#0000FF,bold,size:%(size)d" % faces) # UnknownTag definition self.StyleSetSpec(stc.STC_H_TAGUNKNOWN, "fore:#007F7F,bold,size:%(size)d" % faces) # Operators self.StyleSetSpec(stc.STC_H_XMLSTART, "bold,size:%(size)d" % faces) # Identifiers self.StyleSetSpec(stc.STC_H_CDATA, "fore:#000000,face:%(helv)s,size:%(size)d" % faces) # Comment-blocks self.StyleSetSpec(stc.STC_H_COMMENT, "fore:#7F007F,underline,size:%(size)d" % faces) # End of line where string is not closed #self.StyleSetSpec(stc.STC_H_XMLEND, "fore:#000000,face:%(mono)s,size:%(size)d" % faces) self.SetCaretForeground("BLUE") self.SetCaretForeground("BLUE") # register some images for use in the AutoComplete box. self.RegisterImage(1, wx.ArtProvider.GetBitmap(wx.ART_NEW, size=(16,16))) self.RegisterImage(2, wx.ArtProvider.GetBitmap(wx.ART_NEW, size=(16,16))) self.RegisterImage(3, wx.ArtProvider.GetBitmap(wx.ART_COPY, size=(16,16))) def OnKeyPressed(self, event): if self.CallTipActive(): self.CallTipCancel() key = event.GetKeyCode() if key == 32 and event.ControlDown(): pos = self.GetCurrentPos() # Tips if event.ShiftDown(): self.CallTipSetBackground("yellow") self.CallTipShow(pos, 'lots of of text: blah, blah, blah\n\n' 'show some suff, maybe parameters..\n\n' 'fubar(param1, param2)') # Code completion else: #lst = [] #for x in range(50000): # lst.append('%05d' % x) #st = " ".join(lst) #print len(st) #self.AutoCompShow(0, st) kw = keyword.kwlist[:] kw.append("zzzzzz?2") kw.append("aaaaa?2") kw.append("__init__?3") kw.append("zzaaaaa?2") kw.append("zzbaaaa?2") kw.append("this_is_a_longer_value") #kw.append("this_is_a_much_much_much_much_much_much_much_longer_value") kw.sort() # Python sorts are case sensitive self.AutoCompSetIgnoreCase(False) # so this needs to match # Images are specified with a appended "?type" for i in range(len(kw)): if kw[i] in keyword.kwlist: kw[i] = kw[i] + "?1" self.AutoCompShow(0, " ".join(kw)) else: event.Skip() def OnUpdateUI(self, evt): # check for matching braces braceAtCaret = -1 braceOpposite = -1 charBefore = None caretPos = self.GetCurrentPos() if caretPos > 0: charBefore = self.GetCharAt(caretPos - 1) styleBefore = self.GetStyleAt(caretPos - 1) # check before if charBefore and chr(charBefore) in "[]{}()<>" and styleBefore == stc.STC_H_XMLSTART: braceAtCaret = caretPos - 1 # check after if braceAtCaret < 0: charAfter = self.GetCharAt(caretPos) styleAfter = self.GetStyleAt(caretPos) if charAfter and chr(charAfter) in "[]{}()<>" and styleAfter == stc.STC_H_XMLEND: braceAtCaret = caretPos if braceAtCaret >= 0: braceOpposite = self.BraceMatch(braceAtCaret) if braceAtCaret != -1 and braceOpposite == -1: self.BraceBadLight(braceAtCaret) else: self.BraceHighlight(braceAtCaret, braceOpposite) #pt = self.PointFromPosition(braceOpposite) #self.Refresh(True, wxRect(pt.x, pt.y, 5,5)) #print pt #self.Refresh(False) def OnMarginClick(self, evt): # fold and unfold as needed if evt.GetMargin() == 2: if evt.GetShift() and evt.GetControl(): self.FoldAll() else: lineClicked = self.LineFromPosition(evt.GetPosition()) if self.GetFoldLevel(lineClicked) & stc.STC_FOLDLEVELHEADERFLAG: if evt.GetShift(): self.SetFoldExpanded(lineClicked, True) self.Expand(lineClicked, True, True, 1) elif evt.GetControl(): if self.GetFoldExpanded(lineClicked): self.SetFoldExpanded(lineClicked, False) self.Expand(lineClicked, False, True, 0) else: self.SetFoldExpanded(lineClicked, True) self.Expand(lineClicked, True, True, 100) else: self.ToggleFold(lineClicked) def FoldAll(self): lineCount = self.GetLineCount() expanding = True # find out if we are folding or unfolding for lineNum in range(lineCount): if self.GetFoldLevel(lineNum) & stc.STC_FOLDLEVELHEADERFLAG: expanding = not self.GetFoldExpanded(lineNum) break lineNum = 0 while lineNum < lineCount: level = self.GetFoldLevel(lineNum) if level & stc.STC_FOLDLEVELHEADERFLAG and \ (level & stc.STC_FOLDLEVELNUMBERMASK) == stc.STC_FOLDLEVELBASE: if expanding: self.SetFoldExpanded(lineNum, True) lineNum = self.Expand(lineNum, True) lineNum = lineNum - 1 else: lastChild = self.GetLastChild(lineNum, -1) self.SetFoldExpanded(lineNum, False) if lastChild > lineNum: self.HideLines(lineNum+1, lastChild) lineNum = lineNum + 1 def Expand(self, line, doExpand, force=False, visLevels=0, level=-1): lastChild = self.GetLastChild(line, level) line = line + 1 while line <= lastChild: if force: if visLevels > 0: self.ShowLines(line, line) else: self.HideLines(line, line) else: if doExpand: self.ShowLines(line, line) if level == -1: level = self.GetFoldLevel(line) if level & stc.STC_FOLDLEVELHEADERFLAG: if force: if visLevels > 1: self.SetFoldExpanded(line, True) else: self.SetFoldExpanded(line, False) line = self.Expand(line, doExpand, force, visLevels-1) else: if doExpand and self.GetFoldExpanded(line): line = self.Expand(line, True, force, visLevels-1) else: line = self.Expand(line, False, force, visLevels-1) else: line = line + 1 return line #---------------------------------------------------------------------- #---------------------------------------------------------------------- #---------------------------------------------------------------------- class StyledTextCtrlPanel(wx.Panel): _custom_classes = {'wx.stc.StyledTextCtrl': ['PythonSTC','XMLSTC']} def _init_coll_boxSizer1_Items(self, parent): # generated method, don't edit parent.Add(self.styledTextCtrl1, 1, border=2, flag=wx.EXPAND) def _init_sizers(self): # generated method, don't edit self.boxSizer1 = wx.BoxSizer(orient=wx.VERTICAL) self._init_coll_boxSizer1_Items(self.boxSizer1) self.SetSizer(self.boxSizer1) def _init_ctrls(self, prnt): # generated method, don't edit wx.Panel.__init__(self, id=wxID_STYLEDTEXTCTRLPANEL, name='StyledTextCtrlPanel', parent=prnt, pos=wx.Point(519, 269), size=wx.Size(589, 342), style=wx.TAB_TRAVERSAL) self.SetClientSize(wx.Size(573, 304)) self.styledTextCtrl1 = XMLSTC(id=wxID_STYLEDTEXTCTRLPANELSTYLEDTEXTCTRL1, name='styledTextCtrl1', parent=self, pos=wx.Point(0, 0), size=wx.Size(573, 304), style=0) self._init_sizers() def __init__(self, parent, id, pos, size, style, name): self._init_ctrls(parent) def test_StyledTextCtrlPanel(): app = wx.PySimpleApp() frame = wx.Frame(None,size=wx.Size(900, 800)) panel=StyledTextCtrlPanel(id=1, name='IV Panel', parent=frame, pos=wx.Point(350, 204), size=wx.Size(200, 800), style=wx.TAB_TRAVERSAL) panel.styledTextCtrl1.SetText(demoText ) #+ open('WaferName.xml').read() panel.styledTextCtrl1.EmptyUndoBuffer() panel.styledTextCtrl1.Colourise(0, -1) # line numbers in the margin panel.styledTextCtrl1.SetMarginType(1, stc.STC_MARGIN_NUMBER) panel.styledTextCtrl1.SetMarginWidth(1, 25) sizer=wx.BoxSizer() sizer.Add(panel,1,wx.EXPAND,2) frame.SetSizerAndFit(sizer) frame.SetSize(wx.Size(800, 600)) frame.Show() app.MainLoop() if __name__ == '__main__': test_StyledTextCtrlPanel()
Functions
def runTest(
frame, nb, log)
def runTest(frame, nb, log): if not _USE_PANEL: ed = p = PythonSTC(nb, -1) else: p = wx.Panel(nb, -1, style = wx.NO_FULL_REPAINT_ON_RESIZE) ed = PythonSTC(p, -1) s = wx.BoxSizer(wx.HORIZONTAL) s.Add(ed, 1, wx.EXPAND) p.SetSizer(s) p.SetAutoLayout(True) ed.SetText(demoText + open('Main.py').read()) ed.EmptyUndoBuffer() ed.Colourise(0, -1) # line numbers in the margin ed.SetMarginType(1, stc.STC_MARGIN_NUMBER) ed.SetMarginWidth(1, 25) return p
def test_StyledTextCtrlPanel(
)
def test_StyledTextCtrlPanel(): app = wx.PySimpleApp() frame = wx.Frame(None,size=wx.Size(900, 800)) panel=StyledTextCtrlPanel(id=1, name='IV Panel', parent=frame, pos=wx.Point(350, 204), size=wx.Size(200, 800), style=wx.TAB_TRAVERSAL) panel.styledTextCtrl1.SetText(demoText ) #+ open('WaferName.xml').read() panel.styledTextCtrl1.EmptyUndoBuffer() panel.styledTextCtrl1.Colourise(0, -1) # line numbers in the margin panel.styledTextCtrl1.SetMarginType(1, stc.STC_MARGIN_NUMBER) panel.styledTextCtrl1.SetMarginWidth(1, 25) sizer=wx.BoxSizer() sizer.Add(panel,1,wx.EXPAND,2) frame.SetSizerAndFit(sizer) frame.SetSize(wx.Size(800, 600)) frame.Show() app.MainLoop()
Classes
class PythonSTC
StyledTextCtrl(parent, id=ID_ANY, pos=DefaultPosition, size=DefaultSize, style=0, name=STCNameStr) StyledTextCtrl()
A wxWidgets implementation of the Scintilla source code editing component.
class PythonSTC(stc.StyledTextCtrl): fold_symbols = 2 def __init__(self, parent, id, pos=wx.DefaultPosition, size=wx.DefaultSize, style=0,name=None): stc.StyledTextCtrl.__init__(self, parent, id, pos, size, style,name) self.CmdKeyAssign(ord('B'), stc.STC_SCMOD_CTRL, stc.STC_CMD_ZOOMIN) self.CmdKeyAssign(ord('N'), stc.STC_SCMOD_CTRL, stc.STC_CMD_ZOOMOUT) self.SetLexer(stc.STC_LEX_PYTHON) self.SetKeyWords(0, " ".join(keyword.kwlist)) self.SetProperty("fold", "1") self.SetProperty("tab.timmy.whinge.level", "1") self.SetMargins(0,0) self.SetViewWhiteSpace(False) #self.SetBufferedDraw(False) #self.SetViewEOL(True) #self.SetEOLMode(stc.STC_EOL_CRLF) #self.SetUseAntiAliasing(True) self.SetEdgeMode(stc.STC_EDGE_BACKGROUND) self.SetEdgeColumn(78) # Setup a margin to hold fold markers self.SetFoldFlags(16) ### WHAT IS THIS VALUE? WHAT ARE THE OTHER FLAGS? DOES IT MATTER? self.SetMarginType(2, stc.STC_MARGIN_SYMBOL) self.SetMarginMask(2, stc.STC_MASK_FOLDERS) self.SetMarginSensitive(2, True) self.SetMarginWidth(2, 12) if self.fold_symbols == 0: # Arrow pointing right for contracted folders, arrow pointing down for expanded self.MarkerDefine(stc.STC_MARKNUM_FOLDEROPEN, stc.STC_MARK_ARROWDOWN, "black", "black") self.MarkerDefine(stc.STC_MARKNUM_FOLDER, stc.STC_MARK_ARROW, "black", "black") self.MarkerDefine(stc.STC_MARKNUM_FOLDERSUB, stc.STC_MARK_EMPTY, "black", "black") self.MarkerDefine(stc.STC_MARKNUM_FOLDERTAIL, stc.STC_MARK_EMPTY, "black", "black") self.MarkerDefine(stc.STC_MARKNUM_FOLDEREND, stc.STC_MARK_EMPTY, "white", "black") self.MarkerDefine(stc.STC_MARKNUM_FOLDEROPENMID, stc.STC_MARK_EMPTY, "white", "black") self.MarkerDefine(stc.STC_MARKNUM_FOLDERMIDTAIL, stc.STC_MARK_EMPTY, "white", "black") elif self.fold_symbols == 1: # Plus for contracted folders, minus for expanded self.MarkerDefine(stc.STC_MARKNUM_FOLDEROPEN, stc.STC_MARK_MINUS, "white", "black") self.MarkerDefine(stc.STC_MARKNUM_FOLDER, stc.STC_MARK_PLUS, "white", "black") self.MarkerDefine(stc.STC_MARKNUM_FOLDERSUB, stc.STC_MARK_EMPTY, "white", "black") self.MarkerDefine(stc.STC_MARKNUM_FOLDERTAIL, stc.STC_MARK_EMPTY, "white", "black") self.MarkerDefine(stc.STC_MARKNUM_FOLDEREND, stc.STC_MARK_EMPTY, "white", "black") self.MarkerDefine(stc.STC_MARKNUM_FOLDEROPENMID, stc.STC_MARK_EMPTY, "white", "black") self.MarkerDefine(stc.STC_MARKNUM_FOLDERMIDTAIL, stc.STC_MARK_EMPTY, "white", "black") elif self.fold_symbols == 2: # Like a flattened tree control using circular headers and curved joins self.MarkerDefine(stc.STC_MARKNUM_FOLDEROPEN, stc.STC_MARK_CIRCLEMINUS, "white", "#404040") self.MarkerDefine(stc.STC_MARKNUM_FOLDER, stc.STC_MARK_CIRCLEPLUS, "white", "#404040") self.MarkerDefine(stc.STC_MARKNUM_FOLDERSUB, stc.STC_MARK_VLINE, "white", "#404040") self.MarkerDefine(stc.STC_MARKNUM_FOLDERTAIL, stc.STC_MARK_LCORNERCURVE, "white", "#404040") self.MarkerDefine(stc.STC_MARKNUM_FOLDEREND, stc.STC_MARK_CIRCLEPLUSCONNECTED, "white", "#404040") self.MarkerDefine(stc.STC_MARKNUM_FOLDEROPENMID, stc.STC_MARK_CIRCLEMINUSCONNECTED, "white", "#404040") self.MarkerDefine(stc.STC_MARKNUM_FOLDERMIDTAIL, stc.STC_MARK_TCORNERCURVE, "white", "#404040") elif self.fold_symbols == 3: # Like a flattened tree control using square headers self.MarkerDefine(stc.STC_MARKNUM_FOLDEROPEN, stc.STC_MARK_BOXMINUS, "white", "#808080") self.MarkerDefine(stc.STC_MARKNUM_FOLDER, stc.STC_MARK_BOXPLUS, "white", "#808080") self.MarkerDefine(stc.STC_MARKNUM_FOLDERSUB, stc.STC_MARK_VLINE, "white", "#808080") self.MarkerDefine(stc.STC_MARKNUM_FOLDERTAIL, stc.STC_MARK_LCORNER, "white", "#808080") self.MarkerDefine(stc.STC_MARKNUM_FOLDEREND, stc.STC_MARK_BOXPLUSCONNECTED, "white", "#808080") self.MarkerDefine(stc.STC_MARKNUM_FOLDEROPENMID, stc.STC_MARK_BOXMINUSCONNECTED, "white", "#808080") self.MarkerDefine(stc.STC_MARKNUM_FOLDERMIDTAIL, stc.STC_MARK_TCORNER, "white", "#808080") self.Bind(stc.EVT_STC_UPDATEUI, self.OnUpdateUI) self.Bind(stc.EVT_STC_MARGINCLICK, self.OnMarginClick) self.Bind(wx.EVT_KEY_DOWN, self.OnKeyPressed) # Make some styles, The lexer defines what each style is used for, we # just have to define what each style looks like. This set is adapted from # Scintilla sample property files. # Global default styles for all languages self.StyleSetSpec(stc.STC_STYLE_DEFAULT, "face:%(helv)s,size:%(size)d" % faces) self.StyleClearAll() # Reset all to be like the default # Global default styles for all languages self.StyleSetSpec(stc.STC_STYLE_DEFAULT, "face:%(helv)s,size:%(size)d" % faces) self.StyleSetSpec(stc.STC_STYLE_LINENUMBER, "back:#C0C0C0,face:%(helv)s,size:%(size2)d" % faces) self.StyleSetSpec(stc.STC_STYLE_CONTROLCHAR, "face:%(other)s" % faces) self.StyleSetSpec(stc.STC_STYLE_BRACELIGHT, "fore:#FFFFFF,back:#0000FF,bold") self.StyleSetSpec(stc.STC_STYLE_BRACEBAD, "fore:#000000,back:#FF0000,bold") # Python styles # Default self.StyleSetSpec(stc.STC_P_DEFAULT, "fore:#000000,face:%(helv)s,size:%(size)d" % faces) # Comments self.StyleSetSpec(stc.STC_P_COMMENTLINE, "fore:#007F00,face:%(other)s,size:%(size)d" % faces) # Number self.StyleSetSpec(stc.STC_P_NUMBER, "fore:#007F7F,size:%(size)d" % faces) # String self.StyleSetSpec(stc.STC_P_STRING, "fore:#7F007F,face:%(helv)s,size:%(size)d" % faces) # Single quoted string self.StyleSetSpec(stc.STC_P_CHARACTER, "fore:#7F007F,face:%(helv)s,size:%(size)d" % faces) # Keyword self.StyleSetSpec(stc.STC_P_WORD, "fore:#00007F,bold,size:%(size)d" % faces) # Triple quotes self.StyleSetSpec(stc.STC_P_TRIPLE, "fore:#7F0000,size:%(size)d" % faces) # Triple double quotes self.StyleSetSpec(stc.STC_P_TRIPLEDOUBLE, "fore:#7F0000,size:%(size)d" % faces) # Class name definition self.StyleSetSpec(stc.STC_P_CLASSNAME, "fore:#0000FF,bold,underline,size:%(size)d" % faces) # Function or method name definition self.StyleSetSpec(stc.STC_P_DEFNAME, "fore:#007F7F,bold,size:%(size)d" % faces) # Operators self.StyleSetSpec(stc.STC_P_OPERATOR, "bold,size:%(size)d" % faces) # Identifiers self.StyleSetSpec(stc.STC_P_IDENTIFIER, "fore:#000000,face:%(helv)s,size:%(size)d" % faces) # Comment-blocks self.StyleSetSpec(stc.STC_P_COMMENTBLOCK, "fore:#7F7F7F,size:%(size)d" % faces) # End of line where string is not closed #self.StyleSetSpec(stc.STC_P_STRINGEOL, "fore:#000000,face:%(mono)s,back:#E0C0E0,eol,size:%(size)d" % faces) self.SetCaretForeground("BLUE") # register some images for use in the AutoComplete box. self.RegisterImage(1, wx.ArtProvider.GetBitmap(wx.ART_NEW, size=(16,16))) self.RegisterImage(2, wx.ArtProvider.GetBitmap(wx.ART_NEW, size=(16,16))) self.RegisterImage(3, wx.ArtProvider.GetBitmap(wx.ART_COPY, size=(16,16))) def OnKeyPressed(self, event): if self.CallTipActive(): self.CallTipCancel() key = event.GetKeyCode() if key == 32 and event.ControlDown(): pos = self.GetCurrentPos() # Tips if event.ShiftDown(): self.CallTipSetBackground("yellow") self.CallTipShow(pos, 'lots of of text: blah, blah, blah\n\n' 'show some suff, maybe parameters..\n\n' 'fubar(param1, param2)') # Code completion else: #lst = [] #for x in range(50000): # lst.append('%05d' % x) #st = " ".join(lst) #print len(st) #self.AutoCompShow(0, st) kw = keyword.kwlist[:] kw.append("zzzzzz?2") kw.append("aaaaa?2") kw.append("__init__?3") kw.append("zzaaaaa?2") kw.append("zzbaaaa?2") kw.append("this_is_a_longer_value") #kw.append("this_is_a_much_much_much_much_much_much_much_longer_value") kw.sort() # Python sorts are case sensitive self.AutoCompSetIgnoreCase(False) # so this needs to match # Images are specified with a appended "?type" for i in range(len(kw)): if kw[i] in keyword.kwlist: kw[i] = kw[i] + "?1" self.AutoCompShow(0, " ".join(kw)) else: event.Skip() def OnUpdateUI(self, evt): # check for matching braces braceAtCaret = -1 braceOpposite = -1 charBefore = None caretPos = self.GetCurrentPos() if caretPos > 0: charBefore = self.GetCharAt(caretPos - 1) styleBefore = self.GetStyleAt(caretPos - 1) # check before if charBefore and chr(charBefore) in "[]{}()" and styleBefore == stc.STC_P_OPERATOR: braceAtCaret = caretPos - 1 # check after if braceAtCaret < 0: charAfter = self.GetCharAt(caretPos) styleAfter = self.GetStyleAt(caretPos) if charAfter and chr(charAfter) in "[]{}()" and styleAfter == stc.STC_P_OPERATOR: braceAtCaret = caretPos if braceAtCaret >= 0: braceOpposite = self.BraceMatch(braceAtCaret) if braceAtCaret != -1 and braceOpposite == -1: self.BraceBadLight(braceAtCaret) else: self.BraceHighlight(braceAtCaret, braceOpposite) #pt = self.PointFromPosition(braceOpposite) #self.Refresh(True, wxRect(pt.x, pt.y, 5,5)) #print pt #self.Refresh(False) def OnMarginClick(self, evt): # fold and unfold as needed if evt.GetMargin() == 2: if evt.GetShift() and evt.GetControl(): self.FoldAll() else: lineClicked = self.LineFromPosition(evt.GetPosition()) if self.GetFoldLevel(lineClicked) & stc.STC_FOLDLEVELHEADERFLAG: if evt.GetShift(): self.SetFoldExpanded(lineClicked, True) self.Expand(lineClicked, True, True, 1) elif evt.GetControl(): if self.GetFoldExpanded(lineClicked): self.SetFoldExpanded(lineClicked, False) self.Expand(lineClicked, False, True, 0) else: self.SetFoldExpanded(lineClicked, True) self.Expand(lineClicked, True, True, 100) else: self.ToggleFold(lineClicked) def FoldAll(self): lineCount = self.GetLineCount() expanding = True # find out if we are folding or unfolding for lineNum in range(lineCount): if self.GetFoldLevel(lineNum) & stc.STC_FOLDLEVELHEADERFLAG: expanding = not self.GetFoldExpanded(lineNum) break lineNum = 0 while lineNum < lineCount: level = self.GetFoldLevel(lineNum) if level & stc.STC_FOLDLEVELHEADERFLAG and \ (level & stc.STC_FOLDLEVELNUMBERMASK) == stc.STC_FOLDLEVELBASE: if expanding: self.SetFoldExpanded(lineNum, True) lineNum = self.Expand(lineNum, True) lineNum = lineNum - 1 else: lastChild = self.GetLastChild(lineNum, -1) self.SetFoldExpanded(lineNum, False) if lastChild > lineNum: self.HideLines(lineNum+1, lastChild) lineNum = lineNum + 1 def Expand(self, line, doExpand, force=False, visLevels=0, level=-1): lastChild = self.GetLastChild(line, level) line = line + 1 while line <= lastChild: if force: if visLevels > 0: self.ShowLines(line, line) else: self.HideLines(line, line) else: if doExpand: self.ShowLines(line, line) if level == -1: level = self.GetFoldLevel(line) if level & stc.STC_FOLDLEVELHEADERFLAG: if force: if visLevels > 1: self.SetFoldExpanded(line, True) else: self.SetFoldExpanded(line, False) line = self.Expand(line, doExpand, force, visLevels-1) else: if doExpand and self.GetFoldExpanded(line): line = self.Expand(line, True, force, visLevels-1) else: line = self.Expand(line, False, force, visLevels-1) else: line = line + 1 return line
Ancestors (in MRO)
- PythonSTC
- wx._stc.StyledTextCtrl
- wx._core.Control
- wx._core.Window
- wx._core.WindowBase
- wx._core.EvtHandler
- wx._core.Object
- wx._core.Trackable
- sip.wrapper
- sip.simplewrapper
- builtins.object
Class variables
var ChildrenRepositioningGuard
var fold_symbols
Static methods
def __init__(
self, parent, id, pos=wx.Point(-1, -1), size=wx.Size(-1, -1), style=0, name=None)
Initialize self. See help(type(self)) for accurate signature.
def __init__(self, parent, id, pos=wx.DefaultPosition, size=wx.DefaultSize, style=0,name=None): stc.StyledTextCtrl.__init__(self, parent, id, pos, size, style,name) self.CmdKeyAssign(ord('B'), stc.STC_SCMOD_CTRL, stc.STC_CMD_ZOOMIN) self.CmdKeyAssign(ord('N'), stc.STC_SCMOD_CTRL, stc.STC_CMD_ZOOMOUT) self.SetLexer(stc.STC_LEX_PYTHON) self.SetKeyWords(0, " ".join(keyword.kwlist)) self.SetProperty("fold", "1") self.SetProperty("tab.timmy.whinge.level", "1") self.SetMargins(0,0) self.SetViewWhiteSpace(False) #self.SetBufferedDraw(False) #self.SetViewEOL(True) #self.SetEOLMode(stc.STC_EOL_CRLF) #self.SetUseAntiAliasing(True) self.SetEdgeMode(stc.STC_EDGE_BACKGROUND) self.SetEdgeColumn(78) # Setup a margin to hold fold markers self.SetFoldFlags(16) ### WHAT IS THIS VALUE? WHAT ARE THE OTHER FLAGS? DOES IT MATTER? self.SetMarginType(2, stc.STC_MARGIN_SYMBOL) self.SetMarginMask(2, stc.STC_MASK_FOLDERS) self.SetMarginSensitive(2, True) self.SetMarginWidth(2, 12) if self.fold_symbols == 0: # Arrow pointing right for contracted folders, arrow pointing down for expanded self.MarkerDefine(stc.STC_MARKNUM_FOLDEROPEN, stc.STC_MARK_ARROWDOWN, "black", "black") self.MarkerDefine(stc.STC_MARKNUM_FOLDER, stc.STC_MARK_ARROW, "black", "black") self.MarkerDefine(stc.STC_MARKNUM_FOLDERSUB, stc.STC_MARK_EMPTY, "black", "black") self.MarkerDefine(stc.STC_MARKNUM_FOLDERTAIL, stc.STC_MARK_EMPTY, "black", "black") self.MarkerDefine(stc.STC_MARKNUM_FOLDEREND, stc.STC_MARK_EMPTY, "white", "black") self.MarkerDefine(stc.STC_MARKNUM_FOLDEROPENMID, stc.STC_MARK_EMPTY, "white", "black") self.MarkerDefine(stc.STC_MARKNUM_FOLDERMIDTAIL, stc.STC_MARK_EMPTY, "white", "black") elif self.fold_symbols == 1: # Plus for contracted folders, minus for expanded self.MarkerDefine(stc.STC_MARKNUM_FOLDEROPEN, stc.STC_MARK_MINUS, "white", "black") self.MarkerDefine(stc.STC_MARKNUM_FOLDER, stc.STC_MARK_PLUS, "white", "black") self.MarkerDefine(stc.STC_MARKNUM_FOLDERSUB, stc.STC_MARK_EMPTY, "white", "black") self.MarkerDefine(stc.STC_MARKNUM_FOLDERTAIL, stc.STC_MARK_EMPTY, "white", "black") self.MarkerDefine(stc.STC_MARKNUM_FOLDEREND, stc.STC_MARK_EMPTY, "white", "black") self.MarkerDefine(stc.STC_MARKNUM_FOLDEROPENMID, stc.STC_MARK_EMPTY, "white", "black") self.MarkerDefine(stc.STC_MARKNUM_FOLDERMIDTAIL, stc.STC_MARK_EMPTY, "white", "black") elif self.fold_symbols == 2: # Like a flattened tree control using circular headers and curved joins self.MarkerDefine(stc.STC_MARKNUM_FOLDEROPEN, stc.STC_MARK_CIRCLEMINUS, "white", "#404040") self.MarkerDefine(stc.STC_MARKNUM_FOLDER, stc.STC_MARK_CIRCLEPLUS, "white", "#404040") self.MarkerDefine(stc.STC_MARKNUM_FOLDERSUB, stc.STC_MARK_VLINE, "white", "#404040") self.MarkerDefine(stc.STC_MARKNUM_FOLDERTAIL, stc.STC_MARK_LCORNERCURVE, "white", "#404040") self.MarkerDefine(stc.STC_MARKNUM_FOLDEREND, stc.STC_MARK_CIRCLEPLUSCONNECTED, "white", "#404040") self.MarkerDefine(stc.STC_MARKNUM_FOLDEROPENMID, stc.STC_MARK_CIRCLEMINUSCONNECTED, "white", "#404040") self.MarkerDefine(stc.STC_MARKNUM_FOLDERMIDTAIL, stc.STC_MARK_TCORNERCURVE, "white", "#404040") elif self.fold_symbols == 3: # Like a flattened tree control using square headers self.MarkerDefine(stc.STC_MARKNUM_FOLDEROPEN, stc.STC_MARK_BOXMINUS, "white", "#808080") self.MarkerDefine(stc.STC_MARKNUM_FOLDER, stc.STC_MARK_BOXPLUS, "white", "#808080") self.MarkerDefine(stc.STC_MARKNUM_FOLDERSUB, stc.STC_MARK_VLINE, "white", "#808080") self.MarkerDefine(stc.STC_MARKNUM_FOLDERTAIL, stc.STC_MARK_LCORNER, "white", "#808080") self.MarkerDefine(stc.STC_MARKNUM_FOLDEREND, stc.STC_MARK_BOXPLUSCONNECTED, "white", "#808080") self.MarkerDefine(stc.STC_MARKNUM_FOLDEROPENMID, stc.STC_MARK_BOXMINUSCONNECTED, "white", "#808080") self.MarkerDefine(stc.STC_MARKNUM_FOLDERMIDTAIL, stc.STC_MARK_TCORNER, "white", "#808080") self.Bind(stc.EVT_STC_UPDATEUI, self.OnUpdateUI) self.Bind(stc.EVT_STC_MARGINCLICK, self.OnMarginClick) self.Bind(wx.EVT_KEY_DOWN, self.OnKeyPressed) # Make some styles, The lexer defines what each style is used for, we # just have to define what each style looks like. This set is adapted from # Scintilla sample property files. # Global default styles for all languages self.StyleSetSpec(stc.STC_STYLE_DEFAULT, "face:%(helv)s,size:%(size)d" % faces) self.StyleClearAll() # Reset all to be like the default # Global default styles for all languages self.StyleSetSpec(stc.STC_STYLE_DEFAULT, "face:%(helv)s,size:%(size)d" % faces) self.StyleSetSpec(stc.STC_STYLE_LINENUMBER, "back:#C0C0C0,face:%(helv)s,size:%(size2)d" % faces) self.StyleSetSpec(stc.STC_STYLE_CONTROLCHAR, "face:%(other)s" % faces) self.StyleSetSpec(stc.STC_STYLE_BRACELIGHT, "fore:#FFFFFF,back:#0000FF,bold") self.StyleSetSpec(stc.STC_STYLE_BRACEBAD, "fore:#000000,back:#FF0000,bold") # Python styles # Default self.StyleSetSpec(stc.STC_P_DEFAULT, "fore:#000000,face:%(helv)s,size:%(size)d" % faces) # Comments self.StyleSetSpec(stc.STC_P_COMMENTLINE, "fore:#007F00,face:%(other)s,size:%(size)d" % faces) # Number self.StyleSetSpec(stc.STC_P_NUMBER, "fore:#007F7F,size:%(size)d" % faces) # String self.StyleSetSpec(stc.STC_P_STRING, "fore:#7F007F,face:%(helv)s,size:%(size)d" % faces) # Single quoted string self.StyleSetSpec(stc.STC_P_CHARACTER, "fore:#7F007F,face:%(helv)s,size:%(size)d" % faces) # Keyword self.StyleSetSpec(stc.STC_P_WORD, "fore:#00007F,bold,size:%(size)d" % faces) # Triple quotes self.StyleSetSpec(stc.STC_P_TRIPLE, "fore:#7F0000,size:%(size)d" % faces) # Triple double quotes self.StyleSetSpec(stc.STC_P_TRIPLEDOUBLE, "fore:#7F0000,size:%(size)d" % faces) # Class name definition self.StyleSetSpec(stc.STC_P_CLASSNAME, "fore:#0000FF,bold,underline,size:%(size)d" % faces) # Function or method name definition self.StyleSetSpec(stc.STC_P_DEFNAME, "fore:#007F7F,bold,size:%(size)d" % faces) # Operators self.StyleSetSpec(stc.STC_P_OPERATOR, "bold,size:%(size)d" % faces) # Identifiers self.StyleSetSpec(stc.STC_P_IDENTIFIER, "fore:#000000,face:%(helv)s,size:%(size)d" % faces) # Comment-blocks self.StyleSetSpec(stc.STC_P_COMMENTBLOCK, "fore:#7F7F7F,size:%(size)d" % faces) # End of line where string is not closed #self.StyleSetSpec(stc.STC_P_STRINGEOL, "fore:#000000,face:%(mono)s,back:#E0C0E0,eol,size:%(size)d" % faces) self.SetCaretForeground("BLUE") # register some images for use in the AutoComplete box. self.RegisterImage(1, wx.ArtProvider.GetBitmap(wx.ART_NEW, size=(16,16))) self.RegisterImage(2, wx.ArtProvider.GetBitmap(wx.ART_NEW, size=(16,16))) self.RegisterImage(3, wx.ArtProvider.GetBitmap(wx.ART_COPY, size=(16,16)))
def Bind(
self, event, handler, source=None, id=-1, id2=-1)
Bind an event to an event handler.
:param event: One of the EVT_*
event binder objects that
specifies the type of event to bind.
:param handler: A callable object to be invoked when the
event is delivered to self. Pass None
to
disconnect an event handler.
:param source: Sometimes the event originates from a different window than self, but you still want to catch it in self. (For example, a button event delivered to a frame.) By passing the source of the event, the event handling system is able to differentiate between the same event type from different controls.
:param id: Used to spcify the event source by ID instead of instance.
:param id2: Used when it is desirable to bind a handler to a range of IDs, such as with EVT_MENU_RANGE.
def _EvtHandler_Bind(self, event, handler, source=None, id=wx.ID_ANY, id2=wx.ID_ANY): """ Bind an event to an event handler. :param event: One of the ``EVT_*`` event binder objects that specifies the type of event to bind. :param handler: A callable object to be invoked when the event is delivered to self. Pass ``None`` to disconnect an event handler. :param source: Sometimes the event originates from a different window than self, but you still want to catch it in self. (For example, a button event delivered to a frame.) By passing the source of the event, the event handling system is able to differentiate between the same event type from different controls. :param id: Used to spcify the event source by ID instead of instance. :param id2: Used when it is desirable to bind a handler to a range of IDs, such as with EVT_MENU_RANGE. """ assert isinstance(event, wx.PyEventBinder) assert callable(handler) or handler is None assert source is None or hasattr(source, 'GetId') if source is not None: id = source.GetId() event.Bind(self, id, id2, handler)
def ConvertDialogPointToPixels(
*args, **kw)
def deprecated_func(*args, **kw): warnings.warn("Call to deprecated item%s. %s" % (name, msg), wxPyDeprecationWarning, stacklevel=2) if not kw: return item(*args) return item(*args, **kw)
def ConvertDialogSizeToPixels(
*args, **kw)
def deprecated_func(*args, **kw): warnings.warn("Call to deprecated item%s. %s" % (name, msg), wxPyDeprecationWarning, stacklevel=2) if not kw: return item(*args) return item(*args, **kw)
def DLG_UNIT(
self, dlg_unit)
A convenience wrapper for :meth:ConvertDialogToPixels
.
def _Window_DLG_UNIT(self, dlg_unit): """ A convenience wrapper for :meth:`ConvertDialogToPixels`. """ is_wxType = isinstance(dlg_unit, (wx.Size, wx.Point)) pix = self.ConvertDialogToPixels(dlg_unit) if not is_wxType: pix = tuple(pix) return pix
def DestroyLater(
self)
Schedules the window to be destroyed in the near future.
This should be used whenever Destroy could happen too soon, such as when there may still be events for this window or its children waiting in the event queue.
def _Window_DestroyLater(self): """ Schedules the window to be destroyed in the near future. This should be used whenever Destroy could happen too soon, such as when there may still be events for this window or its children waiting in the event queue. """ self.Hide() wx.GetApp().ScheduleForDestruction(self)
def Expand(
self, line, doExpand, force=False, visLevels=0, level=-1)
def Expand(self, line, doExpand, force=False, visLevels=0, level=-1): lastChild = self.GetLastChild(line, level) line = line + 1 while line <= lastChild: if force: if visLevels > 0: self.ShowLines(line, line) else: self.HideLines(line, line) else: if doExpand: self.ShowLines(line, line) if level == -1: level = self.GetFoldLevel(line) if level & stc.STC_FOLDLEVELHEADERFLAG: if force: if visLevels > 1: self.SetFoldExpanded(line, True) else: self.SetFoldExpanded(line, False) line = self.Expand(line, doExpand, force, visLevels-1) else: if doExpand and self.GetFoldExpanded(line): line = self.Expand(line, True, force, visLevels-1) else: line = self.Expand(line, False, force, visLevels-1) else: line = line + 1 return line
def FoldAll(
self)
def FoldAll(self): lineCount = self.GetLineCount() expanding = True # find out if we are folding or unfolding for lineNum in range(lineCount): if self.GetFoldLevel(lineNum) & stc.STC_FOLDLEVELHEADERFLAG: expanding = not self.GetFoldExpanded(lineNum) break lineNum = 0 while lineNum < lineCount: level = self.GetFoldLevel(lineNum) if level & stc.STC_FOLDLEVELHEADERFLAG and \ (level & stc.STC_FOLDLEVELNUMBERMASK) == stc.STC_FOLDLEVELBASE: if expanding: self.SetFoldExpanded(lineNum, True) lineNum = self.Expand(lineNum, True) lineNum = lineNum - 1 else: lastChild = self.GetLastChild(lineNum, -1) self.SetFoldExpanded(lineNum, False) if lastChild > lineNum: self.HideLines(lineNum+1, lastChild) lineNum = lineNum + 1
def GetPositionTuple(
*args, **kw)
def deprecated_func(*args, **kw): warnings.warn("Call to deprecated item%s. %s" % (name, msg), wxPyDeprecationWarning, stacklevel=2) if not kw: return item(*args) return item(*args, **kw)
def GetSizeTuple(
*args, **kw)
def deprecated_func(*args, **kw): warnings.warn("Call to deprecated item%s. %s" % (name, msg), wxPyDeprecationWarning, stacklevel=2) if not kw: return item(*args) return item(*args, **kw)
def GetVirtualSizeTuple(
*args, **kw)
def deprecated_func(*args, **kw): warnings.warn("Call to deprecated item%s. %s" % (name, msg), wxPyDeprecationWarning, stacklevel=2) if not kw: return item(*args) return item(*args, **kw)
def MoveXY(
*args, **kw)
def deprecated_func(*args, **kw): warnings.warn("Call to deprecated item%s. %s" % (name, msg), wxPyDeprecationWarning, stacklevel=2) if not kw: return item(*args) return item(*args, **kw)
def OnKeyPressed(
self, event)
def OnKeyPressed(self, event): if self.CallTipActive(): self.CallTipCancel() key = event.GetKeyCode() if key == 32 and event.ControlDown(): pos = self.GetCurrentPos() # Tips if event.ShiftDown(): self.CallTipSetBackground("yellow") self.CallTipShow(pos, 'lots of of text: blah, blah, blah\n\n' 'show some suff, maybe parameters..\n\n' 'fubar(param1, param2)') # Code completion else: #lst = [] #for x in range(50000): # lst.append('%05d' % x) #st = " ".join(lst) #print len(st) #self.AutoCompShow(0, st) kw = keyword.kwlist[:] kw.append("zzzzzz?2") kw.append("aaaaa?2") kw.append("__init__?3") kw.append("zzaaaaa?2") kw.append("zzbaaaa?2") kw.append("this_is_a_longer_value") #kw.append("this_is_a_much_much_much_much_much_much_much_longer_value") kw.sort() # Python sorts are case sensitive self.AutoCompSetIgnoreCase(False) # so this needs to match # Images are specified with a appended "?type" for i in range(len(kw)): if kw[i] in keyword.kwlist: kw[i] = kw[i] + "?1" self.AutoCompShow(0, " ".join(kw)) else: event.Skip()
def OnMarginClick(
self, evt)
def OnMarginClick(self, evt): # fold and unfold as needed if evt.GetMargin() == 2: if evt.GetShift() and evt.GetControl(): self.FoldAll() else: lineClicked = self.LineFromPosition(evt.GetPosition()) if self.GetFoldLevel(lineClicked) & stc.STC_FOLDLEVELHEADERFLAG: if evt.GetShift(): self.SetFoldExpanded(lineClicked, True) self.Expand(lineClicked, True, True, 1) elif evt.GetControl(): if self.GetFoldExpanded(lineClicked): self.SetFoldExpanded(lineClicked, False) self.Expand(lineClicked, False, True, 0) else: self.SetFoldExpanded(lineClicked, True) self.Expand(lineClicked, True, True, 100) else: self.ToggleFold(lineClicked)
def OnUpdateUI(
self, evt)
def OnUpdateUI(self, evt): # check for matching braces braceAtCaret = -1 braceOpposite = -1 charBefore = None caretPos = self.GetCurrentPos() if caretPos > 0: charBefore = self.GetCharAt(caretPos - 1) styleBefore = self.GetStyleAt(caretPos - 1) # check before if charBefore and chr(charBefore) in "[]{}()" and styleBefore == stc.STC_P_OPERATOR: braceAtCaret = caretPos - 1 # check after if braceAtCaret < 0: charAfter = self.GetCharAt(caretPos) styleAfter = self.GetStyleAt(caretPos) if charAfter and chr(charAfter) in "[]{}()" and styleAfter == stc.STC_P_OPERATOR: braceAtCaret = caretPos if braceAtCaret >= 0: braceOpposite = self.BraceMatch(braceAtCaret) if braceAtCaret != -1 and braceOpposite == -1: self.BraceBadLight(braceAtCaret) else: self.BraceHighlight(braceAtCaret, braceOpposite)
def PostCreate(
*args, **kw)
def deprecated_func(*args, **kw): warnings.warn("Call to deprecated item%s. %s" % (name, msg), wxPyDeprecationWarning, stacklevel=2) if not kw: return item(*args) return item(*args, **kw)
def SetClientRect(
self, rect)
def _Window_SetClientRect(self, rect): return self.SetClientSize(rect)
def SetDimensions(
*args, **kw)
SetDimensions(x, y, width, height, sizeFlags=SIZE_AUTO)
def deprecated_func(*args, **kw): warnings.warn("Call to deprecated item%s. %s" % (name, msg), wxPyDeprecationWarning, stacklevel=2) if not kw: return item(*args) return item(*args, **kw)
def SetRect(
self, rect)
def _Window_SetRect(self, rect): return self.SetSize(rect)
def SetSizeHintsSz(
*args, **kw)
def deprecated_func(*args, **kw): warnings.warn("Call to deprecated item%s. %s" % (name, msg), wxPyDeprecationWarning, stacklevel=2) if not kw: return item(*args) return item(*args, **kw)
def SetSizeWH(
*args, **kw)
def deprecated_func(*args, **kw): warnings.warn("Call to deprecated item%s. %s" % (name, msg), wxPyDeprecationWarning, stacklevel=2) if not kw: return item(*args) return item(*args, **kw)
def SetToolTipString(
*args, **kw)
def deprecated_func(*args, **kw): warnings.warn("Call to deprecated item%s. %s" % (name, msg), wxPyDeprecationWarning, stacklevel=2) if not kw: return item(*args) return item(*args, **kw)
def SetVirtualSizeWH(
*args, **kw)
def deprecated_func(*args, **kw): warnings.warn("Call to deprecated item%s. %s" % (name, msg), wxPyDeprecationWarning, stacklevel=2) if not kw: return item(*args) return item(*args, **kw)
def Unbind(
self, event, source=None, id=-1, id2=-1, handler=None)
Disconnects the event handler binding for event from self
.
Returns True
if successful.
def _EvtHandler_Unbind(self, event, source=None, id=wx.ID_ANY, id2=wx.ID_ANY, handler=None): """ Disconnects the event handler binding for event from `self`. Returns ``True`` if successful. """ if source is not None: id = source.GetId() return event.Unbind(self, id, id2, handler)
Instance variables
var AcceleratorTable
GetAcceleratorTable() -> AcceleratorTable
Gets the accelerator table for this window.
var AdditionalCaretForeground
GetAdditionalCaretForeground() -> Colour
Get the foreground colour of additional carets.
var AdditionalCaretsBlink
GetAdditionalCaretsBlink() -> bool
Whether additional carets will blink.
var AdditionalCaretsVisible
GetAdditionalCaretsVisible() -> bool
Whether additional carets are visible.
var AdditionalSelAlpha
GetAdditionalSelAlpha() -> int
Get the alpha of the selection.
var AdditionalSelectionTyping
GetAdditionalSelectionTyping() -> bool
Whether typing can be performed into multiple selections.
var AllLinesVisible
GetAllLinesVisible() -> bool
Are all lines visible?
var Anchor
GetAnchor() -> int
Returns the position of the opposite end of the selection to the caret.
var AutoLayout
GetAutoLayout() -> bool
Returns the sizer of which this window is a member, if any, otherwise NULL.
var BackSpaceUnIndents
GetBackSpaceUnIndents() -> bool
Does a backspace pressed when caret is within indentation unindent?
var BackgroundColour
GetBackgroundColour() -> Colour
Returns the background colour of the window.
var BackgroundStyle
GetBackgroundStyle() -> BackgroundStyle
Returns the background style of the window.
var BestSize
GetBestSize() -> Size
This functions returns the best acceptable minimal size for the window.
var BestVirtualSize
GetBestVirtualSize() -> Size
Return the largest of ClientSize and BestSize (as determined by a sizer, interior children, or other means)
var Border
GetBorder(flags) -> Border GetBorder() -> Border
Get the window border style from the given flags: this is different from simply doing flags & wxBORDER_MASK because it uses GetDefaultBorder() to translate wxBORDER_DEFAULT to something reasonable.
var BufferedDraw
GetBufferedDraw() -> bool
Is drawing done first into a buffer or direct to the screen?
var Caret
GetCaret() -> Caret
Returns the caret() associated with the window.
var CaretForeground
GetCaretForeground() -> Colour
Get the foreground colour of the caret.
var CaretLineBackAlpha
GetCaretLineBackAlpha() -> int
Get the background alpha of the caret line.
var CaretLineBackground
GetCaretLineBackground() -> Colour
Get the colour of the background of the line containing the caret.
var CaretLineVisible
GetCaretLineVisible() -> bool
Is the background of the line containing the caret in a different colour?
var CaretPeriod
GetCaretPeriod() -> int
Get the time in milliseconds that the caret is on and off.
var CaretSticky
GetCaretSticky() -> int
Can the caret preferred x position only be changed by explicit movement commands?
var CaretStyle
GetCaretStyle() -> int
Returns the current style of the caret.
var CaretWidth
GetCaretWidth() -> int
Returns the width of the insert mode caret.
var CharHeight
GetCharHeight() -> int
Returns the character height for this window.
var CharWidth
GetCharWidth() -> int
Returns the average character width for this window.
var CharacterPointer
GetCharacterPointer() -> PyObject
Compact the document buffer and return a read-only memoryview object of the characters in the document.
var Children
GetChildren() -> WindowList
Returns a reference to the list of the window's children.
var ClassInfo
GetClassInfo() -> ClassInfo
This virtual function is redefined for every class that requires run- time type information, when using the wxDECLARE_CLASS macro (or similar).
var ClassName
GetClassName() -> Char
Returns the class name of the C++ class using wxRTTI.
var ClientAreaOrigin
GetClientAreaOrigin() -> Point
Get the origin of the client area of the window relative to the window top left corner (the client area may be shifted because of the borders, scrollbars, other decorations...)
var ClientRect
GetClientRect() -> Rect
Get the client rectangle in window (i.e. client) coordinates.
var ClientSize
GetClientSize() -> Size
Returns the size of the window 'client area' in pixels.
var CodePage
GetCodePage() -> int
Get the code page used to interpret the bytes of the document as characters.
var Constraints
GetConstraints() -> LayoutConstraints
Returns a pointer to the window's layout constraints, or NULL if there are none.
var ContainingSizer
GetContainingSizer() -> Sizer
Returns the sizer of which this window is a member, if any, otherwise NULL.
var ControlCharSymbol
GetControlCharSymbol() -> int
Get the way control characters are displayed.
var CurLine
GetCurLine() -> (String, linePos)
Retrieve the text of the line containing the caret.
var CurLineRaw
GetCurLineRaw() -> (CharBuffer, linePos)
Retrieve the text of the line containing the caret.
var CurrentLine
GetCurrentLine() -> int
Returns the line number of the line with the caret.
var CurrentPos
GetCurrentPos() -> int
Returns the position of the caret.
var Cursor
GetCursor() -> Cursor
Return the cursor associated with this window.
var DefaultAttributes
GetDefaultAttributes() -> VisualAttributes
Currently this is the same as calling wxWindow::GetClassDefaultAttributes(wxWindow::GetWindowVariant()).
var DefaultStyle
GetDefaultStyle() -> TextAttr
Returns the style currently used for the new text.
var DocPointer
GetDocPointer() -> void
Retrieve a pointer to the document object.
var DropTarget
GetDropTarget() -> DropTarget
Returns the associated drop target, which may be NULL.
var EOLMode
GetEOLMode() -> int
Retrieve the current end of line mode - one of CRLF, CR, or LF.
var EdgeColour
GetEdgeColour() -> Colour
Retrieve the colour used in edge indication.
var EdgeColumn
GetEdgeColumn() -> int
Retrieve the column number which text should be kept within.
var EdgeMode
GetEdgeMode() -> int
Retrieve the edge highlight mode.
var EffectiveMinSize
GetEffectiveMinSize() -> Size
Merges the window's best size into the min size and returns the result.
var Enabled
IsEnabled() -> bool
Returns true if the window is enabled, i.e. if it accepts user input, false otherwise.
var EndAtLastLine
GetEndAtLastLine() -> bool
Retrieve whether the maximum scroll position has the last line at the bottom of the view.
var EndStyled
GetEndStyled() -> int
Retrieve the position of the last correctly styled character.
var EventHandler
GetEventHandler() -> EvtHandler
Returns the event handler for this window.
var EvtHandlerEnabled
GetEvtHandlerEnabled() -> bool
Returns true if the event handler is enabled, false otherwise.
var ExtraAscent
GetExtraAscent() -> int
Get extra ascent for each line.
var ExtraDescent
GetExtraDescent() -> int
Get extra descent for each line.
var ExtraStyle
GetExtraStyle() -> long
Returns the extra style bits for the window.
var FirstVisibleLine
GetFirstVisibleLine() -> int
Retrieve the display line at the top of the display.
var Font
GetFont() -> Font
Returns the font for this window.
var ForegroundColour
GetForegroundColour() -> Colour
Returns the foreground colour of the window.
var GapPosition
GetGapPosition() -> int
Return a position which, to avoid performance costs, should not be within the range of a call to GetRangePointer.
var GrandParent
GetGrandParent() -> Window
Returns the grandparent of a window, or NULL if there isn't one.
var Handle
GetHandle() -> UIntPtr
Returns the platform-specific handle of the physical window.
var HelpText
GetHelpText() -> String
Gets the help text to be used as context-sensitive help for this window.
var HighlightGuide
GetHighlightGuide() -> int
Get the highlighted indentation guide column.
var Hint
GetHint() -> String
Returns the current hint string.
var HotspotActiveBackground
GetHotspotActiveBackground() -> Colour
Get the back colour for active hotspots.
var HotspotActiveForeground
GetHotspotActiveForeground() -> Colour
Get the fore colour for active hotspots.
var HotspotActiveUnderline
GetHotspotActiveUnderline() -> bool
Get whether underlining for active hotspots.
var HotspotSingleLine
GetHotspotSingleLine() -> bool
Get the HotspotSingleLine property.
var Id
GetId() -> WindowID
Returns the identifier of the window.
var Identifier
GetIdentifier() -> int
Get the identifier.
var Indent
GetIndent() -> int
Retrieve indentation size.
var IndentationGuides
GetIndentationGuides() -> int
Are the indentation guides visible?
var IndicatorCurrent
GetIndicatorCurrent() -> int
Get the current indicator.
var IndicatorValue
GetIndicatorValue() -> int
Get the current indicator value.
var InsertionPoint
GetInsertionPoint() -> long
Returns the insertion point, or cursor, position.
var KeysUnicode
GetKeysUnicode() -> bool
Are keys always interpreted as Unicode?
var Label
GetLabel() -> String
Returns the control's label, as it was passed to SetLabel().
var LabelText
GetLabelText() -> String GetLabelText(label) -> String
Returns the control's label without mnemonics.
var LastKeydownProcessed
GetLastKeydownProcessed() -> bool
Can be used to prevent the EVT_CHAR handler from adding the char.
var LastPosition
GetLastPosition() -> long
Returns the zero based index of the last position in the text control, which is equal to the number of characters in the control.
var LayoutCache
GetLayoutCache() -> int
Retrieve the degree of caching of layout information.
var LayoutDirection
GetLayoutDirection() -> LayoutDirection
Returns the layout direction for this window, Note that wxLayout_Default is returned if layout direction is not supported.
var Length
GetLength() -> int
Returns the number of bytes in the document.
var Lexer
GetLexer() -> int
Retrieve the lexing language of the document.
var LineCount
GetLineCount() -> int
Returns the number of lines in the document.
var MainSelection
GetMainSelection() -> int
Which selection is the main selection.
var MarginLeft
GetMarginLeft() -> int
Returns the size in pixels of the left margin.
var MarginOptions
GetMarginOptions() -> int
Get the margin options.
var MarginRight
GetMarginRight() -> int
Returns the size in pixels of the right margin.
var Margins
GetMargins() -> Point
Returns the margins used by the control.
var MaxClientSize
GetMaxClientSize() -> Size
Returns the maximum size of window's client area.
var MaxHeight
GetMaxHeight() -> int
Returns the vertical component of window maximal size.
var MaxLineState
GetMaxLineState() -> int
Retrieve the last line number that has line state.
var MaxSize
GetMaxSize() -> Size
Returns the maximum size of the window.
var MaxWidth
GetMaxWidth() -> int
Returns the horizontal component of window maximal size.
var MinClientSize
GetMinClientSize() -> Size
Returns the minimum size of window's client area, an indication to the sizer layout mechanism that this is the minimum required size of its client area.
var MinHeight
GetMinHeight() -> int
Returns the vertical component of window minimal size.
var MinSize
GetMinSize() -> Size
Returns the minimum size of the window, an indication to the sizer layout mechanism that this is the minimum required size.
var MinWidth
GetMinWidth() -> int
Returns the horizontal component of window minimal size.
var ModEventMask
GetModEventMask() -> int
Get which document modification events are sent to the container.
var Modify
GetModify() -> bool
Is the document different from when it was last saved?
var MouseDownCaptures
GetMouseDownCaptures() -> bool
Get whether mouse gets captured.
var MouseDwellTime
GetMouseDwellTime() -> int
Retrieve the time the mouse must sit still to generate a mouse dwell event.
var MultiPaste
GetMultiPaste() -> int
Retrieve the effect of pasting when there are multiple selections.
var MultipleSelection
GetMultipleSelection() -> bool
Whether multiple selections can be made.
var Name
GetName() -> String
Returns the window's name.
var NextHandler
GetNextHandler() -> EvtHandler
Returns the pointer to the next handler in the chain.
var NumberOfLines
GetNumberOfLines() -> int
var Overtype
GetOvertype() -> bool
Returns true if overtype mode is active otherwise false is returned.
var Parent
GetParent() -> Window
Returns the parent of the window, or NULL if there is no parent.
var PasteConvertEndings
GetPasteConvertEndings() -> bool
Get convert-on-paste setting.
var Position
GetPosition() -> Point
This gets the position of the window in pixels, relative to the parent window for the child windows or relative to the display origin for the top level windows.
var PositionCacheSize
GetPositionCacheSize() -> int
How many entries are allocated to the position cache?
var PreviousHandler
GetPreviousHandler() -> EvtHandler
Returns the pointer to the previous handler in the chain.
var PrintColourMode
GetPrintColourMode() -> int
Returns the print colour mode.
var PrintMagnification
GetPrintMagnification() -> int
Returns the print magnification.
var PrintWrapMode
GetPrintWrapMode() -> int
Is printing line wrapped?
var PunctuationChars
GetPunctuationChars() -> String
Get the set of characters making up punctuation characters.
var RangePointer
GetRangePointer(position, rangeLength) -> PyObject
Return a read-only pointer to a range of characters in the document. May move the gap so that the range is contiguous, but will only move up to rangeLength bytes.
var ReadOnly
GetReadOnly() -> bool
In read-only mode?
var Rect
GetRect() -> Rect
Returns the position and size of the window as a wxRect object.
var RectangularSelectionAnchor
GetRectangularSelectionAnchor() -> int
var RectangularSelectionAnchorVirtualSpace
GetRectangularSelectionAnchorVirtualSpace() -> int
var RectangularSelectionCaret
GetRectangularSelectionCaret() -> int
var RectangularSelectionCaretVirtualSpace
GetRectangularSelectionCaretVirtualSpace() -> int
var RectangularSelectionModifier
GetRectangularSelectionModifier() -> int
Get the modifier key used for rectangular selection.
var RefData
GetRefData() -> ObjectRefData
Returns the wxObject::m_refData pointer, i.e. the data referenced by this object.
var STCCursor
GetSTCCursor() -> int
Get cursor type.
var STCFocus
GetSTCFocus() -> bool
Get internal focus flag.
var ScreenPosition
GetScreenPosition() -> Point
Returns the window position in screen coordinates, whether the window is a child window or a top level one.
var ScreenRect
GetScreenRect() -> Rect
Returns the position and size of the window on the screen as a wxRect object.
var ScrollWidth
GetScrollWidth() -> int
Retrieve the document width assumed for scrolling.
var ScrollWidthTracking
GetScrollWidthTracking() -> bool
Retrieve whether the scroll width tracks wide lines.
var SearchFlags
GetSearchFlags() -> int
Get the search flags used by SearchInTarget.
var SelAlpha
GetSelAlpha() -> int
Get the alpha of the selection.
var SelEOLFilled
GetSelEOLFilled() -> bool
Is the selection end of line filled?
var SelectedText
GetSelectedText() -> String
Retrieve the selected text.
var SelectedTextRaw
GetSelectedTextRaw() -> CharBuffer
Retrieve the selected text.
var SelectionEnd
GetSelectionEnd() -> int
Returns the position at the end of the selection.
var SelectionMode
GetSelectionMode() -> int
Get the mode of the current selection.
var SelectionStart
GetSelectionStart() -> int
Returns the position at the start of the selection.
var Selections
GetSelections() -> int
How many selections are there?
var Shown
IsShown() -> bool
Returns true if the window is shown, false if it has been hidden.
var Size
GetSize() -> Size
Returns the size of the entire window in pixels, including title bar, border, scrollbars, etc.
var Sizer
GetSizer() -> Sizer
Returns the sizer associated with the window by a previous call to SetSizer(), or NULL.
var Status
GetStatus() -> int
Get error status.
var StringSelection
GetStringSelection() -> String
Gets the text currently selected in the control.
var StyleBits
GetStyleBits() -> int
Retrieve number of bits in style bytes used to hold the lexical state.
var StyleBitsNeeded
GetStyleBitsNeeded() -> int
Retrieve the number of bits the current lexer needs for styling.
var TabIndents
GetTabIndents() -> bool
Does a tab pressed when caret is within indentation indent?
var TabWidth
GetTabWidth() -> int
Retrieve the visible size of a tab.
var TargetEnd
GetTargetEnd() -> int
Get the position that ends the target.
var TargetStart
GetTargetStart() -> int
Get the position that starts the target.
var Technology
GetTechnology() -> int
Get the tech.
var Text
GetText() -> String
Retrieve all the text in the document.
var TextLength
GetTextLength() -> int
Retrieve the number of characters in the document.
var TextRaw
GetTextRaw() -> CharBuffer
Retrieve all the text in the document.
var ThemeEnabled
GetThemeEnabled() -> bool
Clears the window by filling it with the current background colour.
var ToolTip
GetToolTip() -> ToolTip
Get the associated tooltip or NULL if none.
var TopLevel
IsTopLevel() -> bool
Returns true if the given window is a top-level one.
var TopLevelParent
GetTopLevelParent() -> Window
Returns the first ancestor of this window which is a top-level window.
var TwoPhaseDraw
GetTwoPhaseDraw() -> bool
Is drawing done in two phases with backgrounds drawn before foregrounds?
var UndoCollection
GetUndoCollection() -> bool
Is undo history being collected?
var UpdateClientRect
GetUpdateClientRect() -> Rect
Get the update rectangle bounding box in client coords.
var UpdateRegion
GetUpdateRegion() -> Region
Returns the region specifying which parts of the window have been damaged.
var UseHorizontalScrollBar
GetUseHorizontalScrollBar() -> bool
Is the horizontal scroll bar visible?
var UseTabs
GetUseTabs() -> bool
Retrieve whether tabs will be used in indentation.
var UseVerticalScrollBar
GetUseVerticalScrollBar() -> bool
Is the vertical scroll bar visible?
var Validator
GetValidator() -> Validator
Validator functions.
var Value
GetValue() -> String
Gets the contents of the control.
var ViewEOL
GetViewEOL() -> bool
Are the end of line characters visible?
var ViewWhiteSpace
GetViewWhiteSpace() -> int
Are white space characters currently visible? Returns one of SCWS_* constants.
var VirtualSize
GetVirtualSize() -> Size
This gets the virtual size of the window in pixels.
var VirtualSpaceOptions
GetVirtualSpaceOptions() -> int
var WhitespaceChars
GetWhitespaceChars() -> String
Get the set of characters making up whitespace for when moving or selecting by word.
var WhitespaceSize
GetWhitespaceSize() -> int
Get the size of the dots used to mark space characters.
var WindowStyle
GetWindowStyle() -> long
See GetWindowStyleFlag() for more info.
var WindowStyleFlag
GetWindowStyleFlag() -> long
Gets the window style that was passed to the constructor or Create() method.
var WindowVariant
GetWindowVariant() -> WindowVariant
Returns the value previously passed to SetWindowVariant().
var WordChars
GetWordChars() -> String
Get the set of characters making up words for when moving or selecting by word.
var WrapIndentMode
GetWrapIndentMode() -> int
Retrieve how wrapped sublines are placed.
var WrapMode
GetWrapMode() -> int
Retrieve whether text is word wrapped.
var WrapStartIndent
GetWrapStartIndent() -> int
Retrive the start indent for wrapped lines.
var WrapVisualFlags
GetWrapVisualFlags() -> int
Retrive the display mode of visual flags for wrapped lines.
var WrapVisualFlagsLocation
GetWrapVisualFlagsLocation() -> int
Retrive the location of visual flags for wrapped lines.
var XOffset
GetXOffset() -> int
var Zoom
GetZoom() -> int
Retrieve the zoom level.
class StyledTextCtrlPanel
Panel() Panel(parent, id=ID_ANY, pos=DefaultPosition, size=DefaultSize, style=TAB_TRAVERSAL, name=PanelNameStr)
A panel is a window on which controls are placed.
class StyledTextCtrlPanel(wx.Panel): _custom_classes = {'wx.stc.StyledTextCtrl': ['PythonSTC','XMLSTC']} def _init_coll_boxSizer1_Items(self, parent): # generated method, don't edit parent.Add(self.styledTextCtrl1, 1, border=2, flag=wx.EXPAND) def _init_sizers(self): # generated method, don't edit self.boxSizer1 = wx.BoxSizer(orient=wx.VERTICAL) self._init_coll_boxSizer1_Items(self.boxSizer1) self.SetSizer(self.boxSizer1) def _init_ctrls(self, prnt): # generated method, don't edit wx.Panel.__init__(self, id=wxID_STYLEDTEXTCTRLPANEL, name='StyledTextCtrlPanel', parent=prnt, pos=wx.Point(519, 269), size=wx.Size(589, 342), style=wx.TAB_TRAVERSAL) self.SetClientSize(wx.Size(573, 304)) self.styledTextCtrl1 = XMLSTC(id=wxID_STYLEDTEXTCTRLPANELSTYLEDTEXTCTRL1, name='styledTextCtrl1', parent=self, pos=wx.Point(0, 0), size=wx.Size(573, 304), style=0) self._init_sizers() def __init__(self, parent, id, pos, size, style, name): self._init_ctrls(parent)
Ancestors (in MRO)
- StyledTextCtrlPanel
- wx._core.Panel
- wx._core.Window
- wx._core.WindowBase
- wx._core.EvtHandler
- wx._core.Object
- wx._core.Trackable
- sip.wrapper
- sip.simplewrapper
- builtins.object
Class variables
var ChildrenRepositioningGuard
Static methods
def __init__(
self, parent, id, pos, size, style, name)
Initialize self. See help(type(self)) for accurate signature.
def __init__(self, parent, id, pos, size, style, name): self._init_ctrls(parent)
def Bind(
self, event, handler, source=None, id=-1, id2=-1)
Bind an event to an event handler.
:param event: One of the EVT_*
event binder objects that
specifies the type of event to bind.
:param handler: A callable object to be invoked when the
event is delivered to self. Pass None
to
disconnect an event handler.
:param source: Sometimes the event originates from a different window than self, but you still want to catch it in self. (For example, a button event delivered to a frame.) By passing the source of the event, the event handling system is able to differentiate between the same event type from different controls.
:param id: Used to spcify the event source by ID instead of instance.
:param id2: Used when it is desirable to bind a handler to a range of IDs, such as with EVT_MENU_RANGE.
def _EvtHandler_Bind(self, event, handler, source=None, id=wx.ID_ANY, id2=wx.ID_ANY): """ Bind an event to an event handler. :param event: One of the ``EVT_*`` event binder objects that specifies the type of event to bind. :param handler: A callable object to be invoked when the event is delivered to self. Pass ``None`` to disconnect an event handler. :param source: Sometimes the event originates from a different window than self, but you still want to catch it in self. (For example, a button event delivered to a frame.) By passing the source of the event, the event handling system is able to differentiate between the same event type from different controls. :param id: Used to spcify the event source by ID instead of instance. :param id2: Used when it is desirable to bind a handler to a range of IDs, such as with EVT_MENU_RANGE. """ assert isinstance(event, wx.PyEventBinder) assert callable(handler) or handler is None assert source is None or hasattr(source, 'GetId') if source is not None: id = source.GetId() event.Bind(self, id, id2, handler)
def ConvertDialogPointToPixels(
*args, **kw)
def deprecated_func(*args, **kw): warnings.warn("Call to deprecated item%s. %s" % (name, msg), wxPyDeprecationWarning, stacklevel=2) if not kw: return item(*args) return item(*args, **kw)
def ConvertDialogSizeToPixels(
*args, **kw)
def deprecated_func(*args, **kw): warnings.warn("Call to deprecated item%s. %s" % (name, msg), wxPyDeprecationWarning, stacklevel=2) if not kw: return item(*args) return item(*args, **kw)
def DLG_UNIT(
self, dlg_unit)
A convenience wrapper for :meth:ConvertDialogToPixels
.
def _Window_DLG_UNIT(self, dlg_unit): """ A convenience wrapper for :meth:`ConvertDialogToPixels`. """ is_wxType = isinstance(dlg_unit, (wx.Size, wx.Point)) pix = self.ConvertDialogToPixels(dlg_unit) if not is_wxType: pix = tuple(pix) return pix
def DestroyLater(
self)
Schedules the window to be destroyed in the near future.
This should be used whenever Destroy could happen too soon, such as when there may still be events for this window or its children waiting in the event queue.
def _Window_DestroyLater(self): """ Schedules the window to be destroyed in the near future. This should be used whenever Destroy could happen too soon, such as when there may still be events for this window or its children waiting in the event queue. """ self.Hide() wx.GetApp().ScheduleForDestruction(self)
def GetPositionTuple(
*args, **kw)
def deprecated_func(*args, **kw): warnings.warn("Call to deprecated item%s. %s" % (name, msg), wxPyDeprecationWarning, stacklevel=2) if not kw: return item(*args) return item(*args, **kw)
def GetSizeTuple(
*args, **kw)
def deprecated_func(*args, **kw): warnings.warn("Call to deprecated item%s. %s" % (name, msg), wxPyDeprecationWarning, stacklevel=2) if not kw: return item(*args) return item(*args, **kw)
def GetVirtualSizeTuple(
*args, **kw)
def deprecated_func(*args, **kw): warnings.warn("Call to deprecated item%s. %s" % (name, msg), wxPyDeprecationWarning, stacklevel=2) if not kw: return item(*args) return item(*args, **kw)
def MoveXY(
*args, **kw)
def deprecated_func(*args, **kw): warnings.warn("Call to deprecated item%s. %s" % (name, msg), wxPyDeprecationWarning, stacklevel=2) if not kw: return item(*args) return item(*args, **kw)
def PostCreate(
*args, **kw)
def deprecated_func(*args, **kw): warnings.warn("Call to deprecated item%s. %s" % (name, msg), wxPyDeprecationWarning, stacklevel=2) if not kw: return item(*args) return item(*args, **kw)
def SetClientRect(
self, rect)
def _Window_SetClientRect(self, rect): return self.SetClientSize(rect)
def SetDimensions(
*args, **kw)
SetDimensions(x, y, width, height, sizeFlags=SIZE_AUTO)
def deprecated_func(*args, **kw): warnings.warn("Call to deprecated item%s. %s" % (name, msg), wxPyDeprecationWarning, stacklevel=2) if not kw: return item(*args) return item(*args, **kw)
def SetRect(
self, rect)
def _Window_SetRect(self, rect): return self.SetSize(rect)
def SetSizeHintsSz(
*args, **kw)
def deprecated_func(*args, **kw): warnings.warn("Call to deprecated item%s. %s" % (name, msg), wxPyDeprecationWarning, stacklevel=2) if not kw: return item(*args) return item(*args, **kw)
def SetSizeWH(
*args, **kw)
def deprecated_func(*args, **kw): warnings.warn("Call to deprecated item%s. %s" % (name, msg), wxPyDeprecationWarning, stacklevel=2) if not kw: return item(*args) return item(*args, **kw)
def SetToolTipString(
*args, **kw)
def deprecated_func(*args, **kw): warnings.warn("Call to deprecated item%s. %s" % (name, msg), wxPyDeprecationWarning, stacklevel=2) if not kw: return item(*args) return item(*args, **kw)
def SetVirtualSizeWH(
*args, **kw)
def deprecated_func(*args, **kw): warnings.warn("Call to deprecated item%s. %s" % (name, msg), wxPyDeprecationWarning, stacklevel=2) if not kw: return item(*args) return item(*args, **kw)
def Unbind(
self, event, source=None, id=-1, id2=-1, handler=None)
Disconnects the event handler binding for event from self
.
Returns True
if successful.
def _EvtHandler_Unbind(self, event, source=None, id=wx.ID_ANY, id2=wx.ID_ANY, handler=None): """ Disconnects the event handler binding for event from `self`. Returns ``True`` if successful. """ if source is not None: id = source.GetId() return event.Unbind(self, id, id2, handler)
Instance variables
var AcceleratorTable
GetAcceleratorTable() -> AcceleratorTable
Gets the accelerator table for this window.
var AutoLayout
GetAutoLayout() -> bool
Returns the sizer of which this window is a member, if any, otherwise NULL.
var BackgroundColour
GetBackgroundColour() -> Colour
Returns the background colour of the window.
var BackgroundStyle
GetBackgroundStyle() -> BackgroundStyle
Returns the background style of the window.
var BestSize
GetBestSize() -> Size
This functions returns the best acceptable minimal size for the window.
var BestVirtualSize
GetBestVirtualSize() -> Size
Return the largest of ClientSize and BestSize (as determined by a sizer, interior children, or other means)
var Border
GetBorder(flags) -> Border GetBorder() -> Border
Get the window border style from the given flags: this is different from simply doing flags & wxBORDER_MASK because it uses GetDefaultBorder() to translate wxBORDER_DEFAULT to something reasonable.
var Caret
GetCaret() -> Caret
Returns the caret() associated with the window.
var CharHeight
GetCharHeight() -> int
Returns the character height for this window.
var CharWidth
GetCharWidth() -> int
Returns the average character width for this window.
var Children
GetChildren() -> WindowList
Returns a reference to the list of the window's children.
var ClassInfo
GetClassInfo() -> ClassInfo
This virtual function is redefined for every class that requires run- time type information, when using the wxDECLARE_CLASS macro (or similar).
var ClassName
GetClassName() -> Char
Returns the class name of the C++ class using wxRTTI.
var ClientAreaOrigin
GetClientAreaOrigin() -> Point
Get the origin of the client area of the window relative to the window top left corner (the client area may be shifted because of the borders, scrollbars, other decorations...)
var ClientRect
GetClientRect() -> Rect
Get the client rectangle in window (i.e. client) coordinates.
var ClientSize
GetClientSize() -> Size
Returns the size of the window 'client area' in pixels.
var Constraints
GetConstraints() -> LayoutConstraints
Returns a pointer to the window's layout constraints, or NULL if there are none.
var ContainingSizer
GetContainingSizer() -> Sizer
Returns the sizer of which this window is a member, if any, otherwise NULL.
var Cursor
GetCursor() -> Cursor
Return the cursor associated with this window.
var DefaultAttributes
GetDefaultAttributes() -> VisualAttributes
Currently this is the same as calling wxWindow::GetClassDefaultAttributes(wxWindow::GetWindowVariant()).
var DropTarget
GetDropTarget() -> DropTarget
Returns the associated drop target, which may be NULL.
var EffectiveMinSize
GetEffectiveMinSize() -> Size
Merges the window's best size into the min size and returns the result.
var Enabled
IsEnabled() -> bool
Returns true if the window is enabled, i.e. if it accepts user input, false otherwise.
var EventHandler
GetEventHandler() -> EvtHandler
Returns the event handler for this window.
var EvtHandlerEnabled
GetEvtHandlerEnabled() -> bool
Returns true if the event handler is enabled, false otherwise.
var ExtraStyle
GetExtraStyle() -> long
Returns the extra style bits for the window.
var Font
GetFont() -> Font
Returns the font for this window.
var ForegroundColour
GetForegroundColour() -> Colour
Returns the foreground colour of the window.
var GrandParent
GetGrandParent() -> Window
Returns the grandparent of a window, or NULL if there isn't one.
var Handle
GetHandle() -> UIntPtr
Returns the platform-specific handle of the physical window.
var HelpText
GetHelpText() -> String
Gets the help text to be used as context-sensitive help for this window.
var Id
GetId() -> WindowID
Returns the identifier of the window.
var Label
GetLabel() -> String
Generic way of getting a label from any window, for identification purposes.
var LayoutDirection
GetLayoutDirection() -> LayoutDirection
Returns the layout direction for this window, Note that wxLayout_Default is returned if layout direction is not supported.
var MaxClientSize
GetMaxClientSize() -> Size
Returns the maximum size of window's client area.
var MaxHeight
GetMaxHeight() -> int
Returns the vertical component of window maximal size.
var MaxSize
GetMaxSize() -> Size
Returns the maximum size of the window.
var MaxWidth
GetMaxWidth() -> int
Returns the horizontal component of window maximal size.
var MinClientSize
GetMinClientSize() -> Size
Returns the minimum size of window's client area, an indication to the sizer layout mechanism that this is the minimum required size of its client area.
var MinHeight
GetMinHeight() -> int
Returns the vertical component of window minimal size.
var MinSize
GetMinSize() -> Size
Returns the minimum size of the window, an indication to the sizer layout mechanism that this is the minimum required size.
var MinWidth
GetMinWidth() -> int
Returns the horizontal component of window minimal size.
var Name
GetName() -> String
Returns the window's name.
var NextHandler
GetNextHandler() -> EvtHandler
Returns the pointer to the next handler in the chain.
var Parent
GetParent() -> Window
Returns the parent of the window, or NULL if there is no parent.
var Position
GetPosition() -> Point
This gets the position of the window in pixels, relative to the parent window for the child windows or relative to the display origin for the top level windows.
var PreviousHandler
GetPreviousHandler() -> EvtHandler
Returns the pointer to the previous handler in the chain.
var Rect
GetRect() -> Rect
Returns the position and size of the window as a wxRect object.
var RefData
GetRefData() -> ObjectRefData
Returns the wxObject::m_refData pointer, i.e. the data referenced by this object.
var ScreenPosition
GetScreenPosition() -> Point
Returns the window position in screen coordinates, whether the window is a child window or a top level one.
var ScreenRect
GetScreenRect() -> Rect
Returns the position and size of the window on the screen as a wxRect object.
var Shown
IsShown() -> bool
Returns true if the window is shown, false if it has been hidden.
var Size
GetSize() -> Size
Returns the size of the entire window in pixels, including title bar, border, scrollbars, etc.
var Sizer
GetSizer() -> Sizer
Returns the sizer associated with the window by a previous call to SetSizer(), or NULL.
var ThemeEnabled
GetThemeEnabled() -> bool
Clears the window by filling it with the current background colour.
var ToolTip
GetToolTip() -> ToolTip
Get the associated tooltip or NULL if none.
var TopLevel
IsTopLevel() -> bool
Returns true if the given window is a top-level one.
var TopLevelParent
GetTopLevelParent() -> Window
Returns the first ancestor of this window which is a top-level window.
var UpdateClientRect
GetUpdateClientRect() -> Rect
Get the update rectangle bounding box in client coords.
var UpdateRegion
GetUpdateRegion() -> Region
Returns the region specifying which parts of the window have been damaged.
var Validator
GetValidator() -> Validator
Validator functions.
var VirtualSize
GetVirtualSize() -> Size
This gets the virtual size of the window in pixels.
var WindowStyle
GetWindowStyle() -> long
See GetWindowStyleFlag() for more info.
var WindowStyleFlag
GetWindowStyleFlag() -> long
Gets the window style that was passed to the constructor or Create() method.
var WindowVariant
GetWindowVariant() -> WindowVariant
Returns the value previously passed to SetWindowVariant().
class XMLSTC
This is a modified StyledTextCtrl for xml. It has weirdness because it was adpated from a Python STC in wx examples.
class XMLSTC(stc.StyledTextCtrl): """ This is a modified StyledTextCtrl for xml. It has weirdness because it was adpated from a Python STC in wx examples.""" fold_symbols = 2 def __init__(self, parent, id, pos=wx.DefaultPosition, size=wx.DefaultSize, style=0,name=None): stc.StyledTextCtrl.__init__(self, parent, id, pos, size, style,name) self.CmdKeyAssign(ord('B'), stc.STC_SCMOD_CTRL, stc.STC_CMD_ZOOMIN) self.CmdKeyAssign(ord('N'), stc.STC_SCMOD_CTRL, stc.STC_CMD_ZOOMOUT) self.SetLexer(stc.STC_LEX_XML) #self.SetKeyWords(0, " ".join(keyword.kwlist)) self.SetProperty("fold", "1") self.SetProperty("tab.timmy.whinge.level", "1") self.SetMargins(0,0) #self.SetViewWhiteSpace(False) #self.SetBufferedDraw(False) #self.SetViewEOL(True) #self.SetEOLMode(stc.STC_EOL_CRLF) #self.SetUseAntiAliasing(True) self.SetEdgeMode(stc.STC_EDGE_BACKGROUND) self.SetEdgeColumn(78) # Setup a margin to hold fold markers self.SetFoldFlags(16) ### WHAT IS THIS VALUE? WHAT ARE THE OTHER FLAGS? DOES IT MATTER? self.SetMarginType(2, stc.STC_MARGIN_SYMBOL) self.SetMarginMask(2, stc.STC_MASK_FOLDERS) self.SetMarginSensitive(2, True) self.SetMarginWidth(2, 12) if self.fold_symbols == 0: # Arrow pointing right for contracted folders, arrow pointing down for expanded self.MarkerDefine(stc.STC_MARKNUM_FOLDEROPEN, stc.STC_MARK_ARROWDOWN, "black", "black") self.MarkerDefine(stc.STC_MARKNUM_FOLDER, stc.STC_MARK_ARROW, "black", "black") self.MarkerDefine(stc.STC_MARKNUM_FOLDERSUB, stc.STC_MARK_EMPTY, "black", "black") self.MarkerDefine(stc.STC_MARKNUM_FOLDERTAIL, stc.STC_MARK_EMPTY, "black", "black") self.MarkerDefine(stc.STC_MARKNUM_FOLDEREND, stc.STC_MARK_EMPTY, "white", "black") self.MarkerDefine(stc.STC_MARKNUM_FOLDEROPENMID, stc.STC_MARK_EMPTY, "white", "black") self.MarkerDefine(stc.STC_MARKNUM_FOLDERMIDTAIL, stc.STC_MARK_EMPTY, "white", "black") elif self.fold_symbols == 1: # Plus for contracted folders, minus for expanded self.MarkerDefine(stc.STC_MARKNUM_FOLDEROPEN, stc.STC_MARK_MINUS, "white", "black") self.MarkerDefine(stc.STC_MARKNUM_FOLDER, stc.STC_MARK_PLUS, "white", "black") self.MarkerDefine(stc.STC_MARKNUM_FOLDERSUB, stc.STC_MARK_EMPTY, "white", "black") self.MarkerDefine(stc.STC_MARKNUM_FOLDERTAIL, stc.STC_MARK_EMPTY, "white", "black") self.MarkerDefine(stc.STC_MARKNUM_FOLDEREND, stc.STC_MARK_EMPTY, "white", "black") self.MarkerDefine(stc.STC_MARKNUM_FOLDEROPENMID, stc.STC_MARK_EMPTY, "white", "black") self.MarkerDefine(stc.STC_MARKNUM_FOLDERMIDTAIL, stc.STC_MARK_EMPTY, "white", "black") elif self.fold_symbols == 2: # Like a flattened tree control using circular headers and curved joins self.MarkerDefine(stc.STC_MARKNUM_FOLDEROPEN, stc.STC_MARK_CIRCLEMINUS, "white", "#404040") self.MarkerDefine(stc.STC_MARKNUM_FOLDER, stc.STC_MARK_CIRCLEPLUS, "white", "#404040") self.MarkerDefine(stc.STC_MARKNUM_FOLDERSUB, stc.STC_MARK_VLINE, "white", "#404040") self.MarkerDefine(stc.STC_MARKNUM_FOLDERTAIL, stc.STC_MARK_LCORNERCURVE, "white", "#404040") self.MarkerDefine(stc.STC_MARKNUM_FOLDEREND, stc.STC_MARK_CIRCLEPLUSCONNECTED, "white", "#404040") self.MarkerDefine(stc.STC_MARKNUM_FOLDEROPENMID, stc.STC_MARK_CIRCLEMINUSCONNECTED, "white", "#404040") self.MarkerDefine(stc.STC_MARKNUM_FOLDERMIDTAIL, stc.STC_MARK_TCORNERCURVE, "white", "#404040") elif self.fold_symbols == 3: # Like a flattened tree control using square headers self.MarkerDefine(stc.STC_MARKNUM_FOLDEROPEN, stc.STC_MARK_BOXMINUS, "white", "#808080") self.MarkerDefine(stc.STC_MARKNUM_FOLDER, stc.STC_MARK_BOXPLUS, "white", "#808080") self.MarkerDefine(stc.STC_MARKNUM_FOLDERSUB, stc.STC_MARK_VLINE, "white", "#808080") self.MarkerDefine(stc.STC_MARKNUM_FOLDERTAIL, stc.STC_MARK_LCORNER, "white", "#808080") self.MarkerDefine(stc.STC_MARKNUM_FOLDEREND, stc.STC_MARK_BOXPLUSCONNECTED, "white", "#808080") self.MarkerDefine(stc.STC_MARKNUM_FOLDEROPENMID, stc.STC_MARK_BOXMINUSCONNECTED, "white", "#808080") self.MarkerDefine(stc.STC_MARKNUM_FOLDERMIDTAIL, stc.STC_MARK_TCORNER, "white", "#808080") self.Bind(stc.EVT_STC_UPDATEUI, self.OnUpdateUI) self.Bind(stc.EVT_STC_MARGINCLICK, self.OnMarginClick) self.Bind(wx.EVT_KEY_DOWN, self.OnKeyPressed) # Make some styles, The lexer defines what each style is used for, we # just have to define what each style looks like. This set is adapted from # Scintilla sample property files. # Global default styles for all languages self.StyleSetSpec(stc.STC_STYLE_DEFAULT, "face:%(helv)s,size:%(size)d" % faces) self.StyleClearAll() # Reset all to be like the default # Global default styles for all languages self.StyleSetSpec(stc.STC_STYLE_DEFAULT, "face:%(helv)s,size:%(size)d" % faces) self.StyleSetSpec(stc.STC_STYLE_LINENUMBER, "back:#C0C0C0,face:%(helv)s,size:%(size2)d" % faces) self.StyleSetSpec(stc.STC_STYLE_CONTROLCHAR, "face:%(other)s" % faces) #self.StyleSetSpec(stc.STC_STYLE_BRACELIGHT, "fore:#FFFFFF,back:#0000FF,bold") #self.StyleSetSpec(stc.STC_STYLE_BRACEBAD, "fore:#000000,back:#FF0000,bold") #styleidnames={wx.stc.STC_H_DEFAULT: 'Default', wx.stc.STC_H_TAG: 'Tag', wx.stc.STC_H_TAGUNKNOWN: 'Tag unknown', wx.stc.STC_H_ATTRIBUTE: 'Attribute', wx.stc.STC_H_NUMBER: 'Number', wx.stc.STC_H_DOUBLESTRING: 'Double quoted string', wx.stc.STC_H_SINGLESTRING:'Single quoted string', wx.stc.STC_H_OTHER: 'Other inside tag', wx.stc.STC_H_COMMENT: 'Comment', wx.stc.STC_H_ENTITY: 'Entity', wx.stc.STC_H_TAGEND: 'Tag end', wx.stc.STC_H_XMLSTART: 'XML start', wx.stc.STC_H_XMLEND: 'XML End'} ##TOD:This is the section I have to define the styles for in order to work # styles=['STC_H_ASP', 'STC_H_ASPAT', 'STC_H_ATTRIBUTE', 'STC_H_ATTRIBUTEUNKNOWN', # 'STC_H_CDATA', 'STC_H_COMMENT', 'STC_H_DEFAULT', 'STC_H_DOUBLESTRING', 'STC_H_ENTITY', # 'STC_H_NUMBER', 'STC_H_OTHER', 'STC_H_QUESTION', 'STC_H_SCRIPT', 'STC_H_SGML_1ST_PARAM', # 'STC_H_SGML_1ST_PARAM_COMMENT', 'STC_H_SGML_BLOCK_DEFAULT', 'STC_H_SGML_COMMAND', #'STC_H_SGML_COMMENT', 'STC_H_SGML_DEFAULT', 'STC_H_SGML_DOUBLESTRING', 'STC_H_SGML_ENTITY', #'STC_H_SGML_ERROR', 'STC_H_SGML_SIMPLESTRING', 'STC_H_SGML_SPECIAL', #'STC_H_SINGLESTRING', 'STC_H_TAG', 'STC_H_TAGEND', 'STC_H_TAGUNKNOWN', #'STC_H_VALUE', 'STC_H_XCCOMMENT', 'STC_H_XMLEND', 'STC_H_XMLSTART'] # XML styles, just taken from the above python sample # XML styles Mostly HTML styles # Default self.StyleSetSpec(stc.STC_H_DEFAULT, "fore:#000000,face:%(helv)s,size:%(size)d" % faces) # Comments self.StyleSetSpec(stc.STC_H_XCCOMMENT, "fore:#007F00,face:%(other)s,size:%(size)d" % faces) # Number self.StyleSetSpec(stc.STC_H_NUMBER, "fore:#007F7F,size:%(size)d" % faces) # String self.StyleSetSpec(stc.STC_H_ATTRIBUTE, "fore:#7F007F,face:%(helv)s,size:%(size)d" % faces) # Single quoted string self.StyleSetSpec(stc.STC_H_QUESTION, "fore:#7F007F,face:%(helv)s,size:%(size)d" % faces) # Keyword self.StyleSetSpec(stc.STC_H_ATTRIBUTEUNKNOWN, "fore:#00007F,bold,size:%(size)d" % faces) # Single quotes self.StyleSetSpec(stc.STC_H_SINGLESTRING, "fore:#7F0000,size:%(size)d" % faces) # double quotes self.StyleSetSpec(stc.STC_H_DOUBLESTRING, "fore:#7F0000,size:%(size)d" % faces) # Tag name definition self.StyleSetSpec(stc.STC_H_TAG, "fore:#0000FF,bold,size:%(size)d" % faces) # UnknownTag definition self.StyleSetSpec(stc.STC_H_TAGUNKNOWN, "fore:#007F7F,bold,size:%(size)d" % faces) # Operators self.StyleSetSpec(stc.STC_H_XMLSTART, "bold,size:%(size)d" % faces) # Identifiers self.StyleSetSpec(stc.STC_H_CDATA, "fore:#000000,face:%(helv)s,size:%(size)d" % faces) # Comment-blocks self.StyleSetSpec(stc.STC_H_COMMENT, "fore:#7F007F,underline,size:%(size)d" % faces) # End of line where string is not closed #self.StyleSetSpec(stc.STC_H_XMLEND, "fore:#000000,face:%(mono)s,size:%(size)d" % faces) self.SetCaretForeground("BLUE") self.SetCaretForeground("BLUE") # register some images for use in the AutoComplete box. self.RegisterImage(1, wx.ArtProvider.GetBitmap(wx.ART_NEW, size=(16,16))) self.RegisterImage(2, wx.ArtProvider.GetBitmap(wx.ART_NEW, size=(16,16))) self.RegisterImage(3, wx.ArtProvider.GetBitmap(wx.ART_COPY, size=(16,16))) def OnKeyPressed(self, event): if self.CallTipActive(): self.CallTipCancel() key = event.GetKeyCode() if key == 32 and event.ControlDown(): pos = self.GetCurrentPos() # Tips if event.ShiftDown(): self.CallTipSetBackground("yellow") self.CallTipShow(pos, 'lots of of text: blah, blah, blah\n\n' 'show some suff, maybe parameters..\n\n' 'fubar(param1, param2)') # Code completion else: #lst = [] #for x in range(50000): # lst.append('%05d' % x) #st = " ".join(lst) #print len(st) #self.AutoCompShow(0, st) kw = keyword.kwlist[:] kw.append("zzzzzz?2") kw.append("aaaaa?2") kw.append("__init__?3") kw.append("zzaaaaa?2") kw.append("zzbaaaa?2") kw.append("this_is_a_longer_value") #kw.append("this_is_a_much_much_much_much_much_much_much_longer_value") kw.sort() # Python sorts are case sensitive self.AutoCompSetIgnoreCase(False) # so this needs to match # Images are specified with a appended "?type" for i in range(len(kw)): if kw[i] in keyword.kwlist: kw[i] = kw[i] + "?1" self.AutoCompShow(0, " ".join(kw)) else: event.Skip() def OnUpdateUI(self, evt): # check for matching braces braceAtCaret = -1 braceOpposite = -1 charBefore = None caretPos = self.GetCurrentPos() if caretPos > 0: charBefore = self.GetCharAt(caretPos - 1) styleBefore = self.GetStyleAt(caretPos - 1) # check before if charBefore and chr(charBefore) in "[]{}()<>" and styleBefore == stc.STC_H_XMLSTART: braceAtCaret = caretPos - 1 # check after if braceAtCaret < 0: charAfter = self.GetCharAt(caretPos) styleAfter = self.GetStyleAt(caretPos) if charAfter and chr(charAfter) in "[]{}()<>" and styleAfter == stc.STC_H_XMLEND: braceAtCaret = caretPos if braceAtCaret >= 0: braceOpposite = self.BraceMatch(braceAtCaret) if braceAtCaret != -1 and braceOpposite == -1: self.BraceBadLight(braceAtCaret) else: self.BraceHighlight(braceAtCaret, braceOpposite) #pt = self.PointFromPosition(braceOpposite) #self.Refresh(True, wxRect(pt.x, pt.y, 5,5)) #print pt #self.Refresh(False) def OnMarginClick(self, evt): # fold and unfold as needed if evt.GetMargin() == 2: if evt.GetShift() and evt.GetControl(): self.FoldAll() else: lineClicked = self.LineFromPosition(evt.GetPosition()) if self.GetFoldLevel(lineClicked) & stc.STC_FOLDLEVELHEADERFLAG: if evt.GetShift(): self.SetFoldExpanded(lineClicked, True) self.Expand(lineClicked, True, True, 1) elif evt.GetControl(): if self.GetFoldExpanded(lineClicked): self.SetFoldExpanded(lineClicked, False) self.Expand(lineClicked, False, True, 0) else: self.SetFoldExpanded(lineClicked, True) self.Expand(lineClicked, True, True, 100) else: self.ToggleFold(lineClicked) def FoldAll(self): lineCount = self.GetLineCount() expanding = True # find out if we are folding or unfolding for lineNum in range(lineCount): if self.GetFoldLevel(lineNum) & stc.STC_FOLDLEVELHEADERFLAG: expanding = not self.GetFoldExpanded(lineNum) break lineNum = 0 while lineNum < lineCount: level = self.GetFoldLevel(lineNum) if level & stc.STC_FOLDLEVELHEADERFLAG and \ (level & stc.STC_FOLDLEVELNUMBERMASK) == stc.STC_FOLDLEVELBASE: if expanding: self.SetFoldExpanded(lineNum, True) lineNum = self.Expand(lineNum, True) lineNum = lineNum - 1 else: lastChild = self.GetLastChild(lineNum, -1) self.SetFoldExpanded(lineNum, False) if lastChild > lineNum: self.HideLines(lineNum+1, lastChild) lineNum = lineNum + 1 def Expand(self, line, doExpand, force=False, visLevels=0, level=-1): lastChild = self.GetLastChild(line, level) line = line + 1 while line <= lastChild: if force: if visLevels > 0: self.ShowLines(line, line) else: self.HideLines(line, line) else: if doExpand: self.ShowLines(line, line) if level == -1: level = self.GetFoldLevel(line) if level & stc.STC_FOLDLEVELHEADERFLAG: if force: if visLevels > 1: self.SetFoldExpanded(line, True) else: self.SetFoldExpanded(line, False) line = self.Expand(line, doExpand, force, visLevels-1) else: if doExpand and self.GetFoldExpanded(line): line = self.Expand(line, True, force, visLevels-1) else: line = self.Expand(line, False, force, visLevels-1) else: line = line + 1 return line
Ancestors (in MRO)
- XMLSTC
- wx._stc.StyledTextCtrl
- wx._core.Control
- wx._core.Window
- wx._core.WindowBase
- wx._core.EvtHandler
- wx._core.Object
- wx._core.Trackable
- sip.wrapper
- sip.simplewrapper
- builtins.object
Class variables
var ChildrenRepositioningGuard
var fold_symbols
Static methods
def __init__(
self, parent, id, pos=wx.Point(-1, -1), size=wx.Size(-1, -1), style=0, name=None)
Initialize self. See help(type(self)) for accurate signature.
def __init__(self, parent, id, pos=wx.DefaultPosition, size=wx.DefaultSize, style=0,name=None): stc.StyledTextCtrl.__init__(self, parent, id, pos, size, style,name) self.CmdKeyAssign(ord('B'), stc.STC_SCMOD_CTRL, stc.STC_CMD_ZOOMIN) self.CmdKeyAssign(ord('N'), stc.STC_SCMOD_CTRL, stc.STC_CMD_ZOOMOUT) self.SetLexer(stc.STC_LEX_XML) #self.SetKeyWords(0, " ".join(keyword.kwlist)) self.SetProperty("fold", "1") self.SetProperty("tab.timmy.whinge.level", "1") self.SetMargins(0,0) #self.SetViewWhiteSpace(False) #self.SetBufferedDraw(False) #self.SetViewEOL(True) #self.SetEOLMode(stc.STC_EOL_CRLF) #self.SetUseAntiAliasing(True) self.SetEdgeMode(stc.STC_EDGE_BACKGROUND) self.SetEdgeColumn(78) # Setup a margin to hold fold markers self.SetFoldFlags(16) ### WHAT IS THIS VALUE? WHAT ARE THE OTHER FLAGS? DOES IT MATTER? self.SetMarginType(2, stc.STC_MARGIN_SYMBOL) self.SetMarginMask(2, stc.STC_MASK_FOLDERS) self.SetMarginSensitive(2, True) self.SetMarginWidth(2, 12) if self.fold_symbols == 0: # Arrow pointing right for contracted folders, arrow pointing down for expanded self.MarkerDefine(stc.STC_MARKNUM_FOLDEROPEN, stc.STC_MARK_ARROWDOWN, "black", "black") self.MarkerDefine(stc.STC_MARKNUM_FOLDER, stc.STC_MARK_ARROW, "black", "black") self.MarkerDefine(stc.STC_MARKNUM_FOLDERSUB, stc.STC_MARK_EMPTY, "black", "black") self.MarkerDefine(stc.STC_MARKNUM_FOLDERTAIL, stc.STC_MARK_EMPTY, "black", "black") self.MarkerDefine(stc.STC_MARKNUM_FOLDEREND, stc.STC_MARK_EMPTY, "white", "black") self.MarkerDefine(stc.STC_MARKNUM_FOLDEROPENMID, stc.STC_MARK_EMPTY, "white", "black") self.MarkerDefine(stc.STC_MARKNUM_FOLDERMIDTAIL, stc.STC_MARK_EMPTY, "white", "black") elif self.fold_symbols == 1: # Plus for contracted folders, minus for expanded self.MarkerDefine(stc.STC_MARKNUM_FOLDEROPEN, stc.STC_MARK_MINUS, "white", "black") self.MarkerDefine(stc.STC_MARKNUM_FOLDER, stc.STC_MARK_PLUS, "white", "black") self.MarkerDefine(stc.STC_MARKNUM_FOLDERSUB, stc.STC_MARK_EMPTY, "white", "black") self.MarkerDefine(stc.STC_MARKNUM_FOLDERTAIL, stc.STC_MARK_EMPTY, "white", "black") self.MarkerDefine(stc.STC_MARKNUM_FOLDEREND, stc.STC_MARK_EMPTY, "white", "black") self.MarkerDefine(stc.STC_MARKNUM_FOLDEROPENMID, stc.STC_MARK_EMPTY, "white", "black") self.MarkerDefine(stc.STC_MARKNUM_FOLDERMIDTAIL, stc.STC_MARK_EMPTY, "white", "black") elif self.fold_symbols == 2: # Like a flattened tree control using circular headers and curved joins self.MarkerDefine(stc.STC_MARKNUM_FOLDEROPEN, stc.STC_MARK_CIRCLEMINUS, "white", "#404040") self.MarkerDefine(stc.STC_MARKNUM_FOLDER, stc.STC_MARK_CIRCLEPLUS, "white", "#404040") self.MarkerDefine(stc.STC_MARKNUM_FOLDERSUB, stc.STC_MARK_VLINE, "white", "#404040") self.MarkerDefine(stc.STC_MARKNUM_FOLDERTAIL, stc.STC_MARK_LCORNERCURVE, "white", "#404040") self.MarkerDefine(stc.STC_MARKNUM_FOLDEREND, stc.STC_MARK_CIRCLEPLUSCONNECTED, "white", "#404040") self.MarkerDefine(stc.STC_MARKNUM_FOLDEROPENMID, stc.STC_MARK_CIRCLEMINUSCONNECTED, "white", "#404040") self.MarkerDefine(stc.STC_MARKNUM_FOLDERMIDTAIL, stc.STC_MARK_TCORNERCURVE, "white", "#404040") elif self.fold_symbols == 3: # Like a flattened tree control using square headers self.MarkerDefine(stc.STC_MARKNUM_FOLDEROPEN, stc.STC_MARK_BOXMINUS, "white", "#808080") self.MarkerDefine(stc.STC_MARKNUM_FOLDER, stc.STC_MARK_BOXPLUS, "white", "#808080") self.MarkerDefine(stc.STC_MARKNUM_FOLDERSUB, stc.STC_MARK_VLINE, "white", "#808080") self.MarkerDefine(stc.STC_MARKNUM_FOLDERTAIL, stc.STC_MARK_LCORNER, "white", "#808080") self.MarkerDefine(stc.STC_MARKNUM_FOLDEREND, stc.STC_MARK_BOXPLUSCONNECTED, "white", "#808080") self.MarkerDefine(stc.STC_MARKNUM_FOLDEROPENMID, stc.STC_MARK_BOXMINUSCONNECTED, "white", "#808080") self.MarkerDefine(stc.STC_MARKNUM_FOLDERMIDTAIL, stc.STC_MARK_TCORNER, "white", "#808080") self.Bind(stc.EVT_STC_UPDATEUI, self.OnUpdateUI) self.Bind(stc.EVT_STC_MARGINCLICK, self.OnMarginClick) self.Bind(wx.EVT_KEY_DOWN, self.OnKeyPressed) # Make some styles, The lexer defines what each style is used for, we # just have to define what each style looks like. This set is adapted from # Scintilla sample property files. # Global default styles for all languages self.StyleSetSpec(stc.STC_STYLE_DEFAULT, "face:%(helv)s,size:%(size)d" % faces) self.StyleClearAll() # Reset all to be like the default # Global default styles for all languages self.StyleSetSpec(stc.STC_STYLE_DEFAULT, "face:%(helv)s,size:%(size)d" % faces) self.StyleSetSpec(stc.STC_STYLE_LINENUMBER, "back:#C0C0C0,face:%(helv)s,size:%(size2)d" % faces) self.StyleSetSpec(stc.STC_STYLE_CONTROLCHAR, "face:%(other)s" % faces) #self.StyleSetSpec(stc.STC_STYLE_BRACELIGHT, "fore:#FFFFFF,back:#0000FF,bold") #self.StyleSetSpec(stc.STC_STYLE_BRACEBAD, "fore:#000000,back:#FF0000,bold") leidnames={wx.stc.STC_H_DEFAULT: 'Default', wx.stc.STC_H_TAG: 'Tag', wx.stc.STC_H_TAGUNKNOWN: 'Tag unknown', wx.stc.STC_H_ATTRIBUTE: 'Attribute', wx.stc.STC_H_NUMBER: 'Number', wx.stc.STC_H_DOUBLESTRING: 'Double quoted string', wx.stc.STC_H_SINGLESTRING:'Single quoted string', wx.stc.STC_H_OTHER: 'Other inside tag', wx.stc.STC_H_COMMENT: 'Comment', wx.stc.STC_H_ENTITY: 'Entity', wx.stc.STC_H_TAGEND: 'Tag end', wx.stc.STC_H_XMLSTART: 'XML start', wx.stc.STC_H_XMLEND: 'XML End'} D:This is the section I have to define the styles for in order to work yles=['STC_H_ASP', 'STC_H_ASPAT', 'STC_H_ATTRIBUTE', 'STC_H_ATTRIBUTEUNKNOWN', TC_H_CDATA', 'STC_H_COMMENT', 'STC_H_DEFAULT', 'STC_H_DOUBLESTRING', 'STC_H_ENTITY', TC_H_NUMBER', 'STC_H_OTHER', 'STC_H_QUESTION', 'STC_H_SCRIPT', 'STC_H_SGML_1ST_PARAM', TC_H_SGML_1ST_PARAM_COMMENT', 'STC_H_SGML_BLOCK_DEFAULT', 'STC_H_SGML_COMMAND', C_H_SGML_COMMENT', 'STC_H_SGML_DEFAULT', 'STC_H_SGML_DOUBLESTRING', 'STC_H_SGML_ENTITY', C_H_SGML_ERROR', 'STC_H_SGML_SIMPLESTRING', 'STC_H_SGML_SPECIAL', C_H_SINGLESTRING', 'STC_H_TAG', 'STC_H_TAGEND', 'STC_H_TAGUNKNOWN', C_H_VALUE', 'STC_H_XCCOMMENT', 'STC_H_XMLEND', 'STC_H_XMLSTART'] # XML styles, just taken from the above python sample # XML styles Mostly HTML styles # Default self.StyleSetSpec(stc.STC_H_DEFAULT, "fore:#000000,face:%(helv)s,size:%(size)d" % faces) # Comments self.StyleSetSpec(stc.STC_H_XCCOMMENT, "fore:#007F00,face:%(other)s,size:%(size)d" % faces) # Number self.StyleSetSpec(stc.STC_H_NUMBER, "fore:#007F7F,size:%(size)d" % faces) # String self.StyleSetSpec(stc.STC_H_ATTRIBUTE, "fore:#7F007F,face:%(helv)s,size:%(size)d" % faces) # Single quoted string self.StyleSetSpec(stc.STC_H_QUESTION, "fore:#7F007F,face:%(helv)s,size:%(size)d" % faces) # Keyword self.StyleSetSpec(stc.STC_H_ATTRIBUTEUNKNOWN, "fore:#00007F,bold,size:%(size)d" % faces) # Single quotes self.StyleSetSpec(stc.STC_H_SINGLESTRING, "fore:#7F0000,size:%(size)d" % faces) # double quotes self.StyleSetSpec(stc.STC_H_DOUBLESTRING, "fore:#7F0000,size:%(size)d" % faces) # Tag name definition self.StyleSetSpec(stc.STC_H_TAG, "fore:#0000FF,bold,size:%(size)d" % faces) # UnknownTag definition self.StyleSetSpec(stc.STC_H_TAGUNKNOWN, "fore:#007F7F,bold,size:%(size)d" % faces) # Operators self.StyleSetSpec(stc.STC_H_XMLSTART, "bold,size:%(size)d" % faces) # Identifiers self.StyleSetSpec(stc.STC_H_CDATA, "fore:#000000,face:%(helv)s,size:%(size)d" % faces) # Comment-blocks self.StyleSetSpec(stc.STC_H_COMMENT, "fore:#7F007F,underline,size:%(size)d" % faces) # End of line where string is not closed #self.StyleSetSpec(stc.STC_H_XMLEND, "fore:#000000,face:%(mono)s,size:%(size)d" % faces) self.SetCaretForeground("BLUE") self.SetCaretForeground("BLUE") # register some images for use in the AutoComplete box. self.RegisterImage(1, wx.ArtProvider.GetBitmap(wx.ART_NEW, size=(16,16))) self.RegisterImage(2, wx.ArtProvider.GetBitmap(wx.ART_NEW, size=(16,16))) self.RegisterImage(3, wx.ArtProvider.GetBitmap(wx.ART_COPY, size=(16,16)))
def Bind(
self, event, handler, source=None, id=-1, id2=-1)
Bind an event to an event handler.
:param event: One of the EVT_*
event binder objects that
specifies the type of event to bind.
:param handler: A callable object to be invoked when the
event is delivered to self. Pass None
to
disconnect an event handler.
:param source: Sometimes the event originates from a different window than self, but you still want to catch it in self. (For example, a button event delivered to a frame.) By passing the source of the event, the event handling system is able to differentiate between the same event type from different controls.
:param id: Used to spcify the event source by ID instead of instance.
:param id2: Used when it is desirable to bind a handler to a range of IDs, such as with EVT_MENU_RANGE.
def _EvtHandler_Bind(self, event, handler, source=None, id=wx.ID_ANY, id2=wx.ID_ANY): """ Bind an event to an event handler. :param event: One of the ``EVT_*`` event binder objects that specifies the type of event to bind. :param handler: A callable object to be invoked when the event is delivered to self. Pass ``None`` to disconnect an event handler. :param source: Sometimes the event originates from a different window than self, but you still want to catch it in self. (For example, a button event delivered to a frame.) By passing the source of the event, the event handling system is able to differentiate between the same event type from different controls. :param id: Used to spcify the event source by ID instead of instance. :param id2: Used when it is desirable to bind a handler to a range of IDs, such as with EVT_MENU_RANGE. """ assert isinstance(event, wx.PyEventBinder) assert callable(handler) or handler is None assert source is None or hasattr(source, 'GetId') if source is not None: id = source.GetId() event.Bind(self, id, id2, handler)
def ConvertDialogPointToPixels(
*args, **kw)
def deprecated_func(*args, **kw): warnings.warn("Call to deprecated item%s. %s" % (name, msg), wxPyDeprecationWarning, stacklevel=2) if not kw: return item(*args) return item(*args, **kw)
def ConvertDialogSizeToPixels(
*args, **kw)
def deprecated_func(*args, **kw): warnings.warn("Call to deprecated item%s. %s" % (name, msg), wxPyDeprecationWarning, stacklevel=2) if not kw: return item(*args) return item(*args, **kw)
def DLG_UNIT(
self, dlg_unit)
A convenience wrapper for :meth:ConvertDialogToPixels
.
def _Window_DLG_UNIT(self, dlg_unit): """ A convenience wrapper for :meth:`ConvertDialogToPixels`. """ is_wxType = isinstance(dlg_unit, (wx.Size, wx.Point)) pix = self.ConvertDialogToPixels(dlg_unit) if not is_wxType: pix = tuple(pix) return pix
def DestroyLater(
self)
Schedules the window to be destroyed in the near future.
This should be used whenever Destroy could happen too soon, such as when there may still be events for this window or its children waiting in the event queue.
def _Window_DestroyLater(self): """ Schedules the window to be destroyed in the near future. This should be used whenever Destroy could happen too soon, such as when there may still be events for this window or its children waiting in the event queue. """ self.Hide() wx.GetApp().ScheduleForDestruction(self)
def Expand(
self, line, doExpand, force=False, visLevels=0, level=-1)
def Expand(self, line, doExpand, force=False, visLevels=0, level=-1): lastChild = self.GetLastChild(line, level) line = line + 1 while line <= lastChild: if force: if visLevels > 0: self.ShowLines(line, line) else: self.HideLines(line, line) else: if doExpand: self.ShowLines(line, line) if level == -1: level = self.GetFoldLevel(line) if level & stc.STC_FOLDLEVELHEADERFLAG: if force: if visLevels > 1: self.SetFoldExpanded(line, True) else: self.SetFoldExpanded(line, False) line = self.Expand(line, doExpand, force, visLevels-1) else: if doExpand and self.GetFoldExpanded(line): line = self.Expand(line, True, force, visLevels-1) else: line = self.Expand(line, False, force, visLevels-1) else: line = line + 1 return line
def FoldAll(
self)
def FoldAll(self): lineCount = self.GetLineCount() expanding = True # find out if we are folding or unfolding for lineNum in range(lineCount): if self.GetFoldLevel(lineNum) & stc.STC_FOLDLEVELHEADERFLAG: expanding = not self.GetFoldExpanded(lineNum) break lineNum = 0 while lineNum < lineCount: level = self.GetFoldLevel(lineNum) if level & stc.STC_FOLDLEVELHEADERFLAG and \ (level & stc.STC_FOLDLEVELNUMBERMASK) == stc.STC_FOLDLEVELBASE: if expanding: self.SetFoldExpanded(lineNum, True) lineNum = self.Expand(lineNum, True) lineNum = lineNum - 1 else: lastChild = self.GetLastChild(lineNum, -1) self.SetFoldExpanded(lineNum, False) if lastChild > lineNum: self.HideLines(lineNum+1, lastChild) lineNum = lineNum + 1
def GetPositionTuple(
*args, **kw)
def deprecated_func(*args, **kw): warnings.warn("Call to deprecated item%s. %s" % (name, msg), wxPyDeprecationWarning, stacklevel=2) if not kw: return item(*args) return item(*args, **kw)
def GetSizeTuple(
*args, **kw)
def deprecated_func(*args, **kw): warnings.warn("Call to deprecated item%s. %s" % (name, msg), wxPyDeprecationWarning, stacklevel=2) if not kw: return item(*args) return item(*args, **kw)
def GetVirtualSizeTuple(
*args, **kw)
def deprecated_func(*args, **kw): warnings.warn("Call to deprecated item%s. %s" % (name, msg), wxPyDeprecationWarning, stacklevel=2) if not kw: return item(*args) return item(*args, **kw)
def MoveXY(
*args, **kw)
def deprecated_func(*args, **kw): warnings.warn("Call to deprecated item%s. %s" % (name, msg), wxPyDeprecationWarning, stacklevel=2) if not kw: return item(*args) return item(*args, **kw)
def OnKeyPressed(
self, event)
def OnKeyPressed(self, event): if self.CallTipActive(): self.CallTipCancel() key = event.GetKeyCode() if key == 32 and event.ControlDown(): pos = self.GetCurrentPos() # Tips if event.ShiftDown(): self.CallTipSetBackground("yellow") self.CallTipShow(pos, 'lots of of text: blah, blah, blah\n\n' 'show some suff, maybe parameters..\n\n' 'fubar(param1, param2)') # Code completion else: #lst = [] #for x in range(50000): # lst.append('%05d' % x) #st = " ".join(lst) #print len(st) #self.AutoCompShow(0, st) kw = keyword.kwlist[:] kw.append("zzzzzz?2") kw.append("aaaaa?2") kw.append("__init__?3") kw.append("zzaaaaa?2") kw.append("zzbaaaa?2") kw.append("this_is_a_longer_value") #kw.append("this_is_a_much_much_much_much_much_much_much_longer_value") kw.sort() # Python sorts are case sensitive self.AutoCompSetIgnoreCase(False) # so this needs to match # Images are specified with a appended "?type" for i in range(len(kw)): if kw[i] in keyword.kwlist: kw[i] = kw[i] + "?1" self.AutoCompShow(0, " ".join(kw)) else: event.Skip()
def OnMarginClick(
self, evt)
def OnMarginClick(self, evt): # fold and unfold as needed if evt.GetMargin() == 2: if evt.GetShift() and evt.GetControl(): self.FoldAll() else: lineClicked = self.LineFromPosition(evt.GetPosition()) if self.GetFoldLevel(lineClicked) & stc.STC_FOLDLEVELHEADERFLAG: if evt.GetShift(): self.SetFoldExpanded(lineClicked, True) self.Expand(lineClicked, True, True, 1) elif evt.GetControl(): if self.GetFoldExpanded(lineClicked): self.SetFoldExpanded(lineClicked, False) self.Expand(lineClicked, False, True, 0) else: self.SetFoldExpanded(lineClicked, True) self.Expand(lineClicked, True, True, 100) else: self.ToggleFold(lineClicked)
def OnUpdateUI(
self, evt)
def OnUpdateUI(self, evt): # check for matching braces braceAtCaret = -1 braceOpposite = -1 charBefore = None caretPos = self.GetCurrentPos() if caretPos > 0: charBefore = self.GetCharAt(caretPos - 1) styleBefore = self.GetStyleAt(caretPos - 1) # check before if charBefore and chr(charBefore) in "[]{}()<>" and styleBefore == stc.STC_H_XMLSTART: braceAtCaret = caretPos - 1 # check after if braceAtCaret < 0: charAfter = self.GetCharAt(caretPos) styleAfter = self.GetStyleAt(caretPos) if charAfter and chr(charAfter) in "[]{}()<>" and styleAfter == stc.STC_H_XMLEND: braceAtCaret = caretPos if braceAtCaret >= 0: braceOpposite = self.BraceMatch(braceAtCaret) if braceAtCaret != -1 and braceOpposite == -1: self.BraceBadLight(braceAtCaret) else: self.BraceHighlight(braceAtCaret, braceOpposite)
def PostCreate(
*args, **kw)
def deprecated_func(*args, **kw): warnings.warn("Call to deprecated item%s. %s" % (name, msg), wxPyDeprecationWarning, stacklevel=2) if not kw: return item(*args) return item(*args, **kw)
def SetClientRect(
self, rect)
def _Window_SetClientRect(self, rect): return self.SetClientSize(rect)
def SetDimensions(
*args, **kw)
SetDimensions(x, y, width, height, sizeFlags=SIZE_AUTO)
def deprecated_func(*args, **kw): warnings.warn("Call to deprecated item%s. %s" % (name, msg), wxPyDeprecationWarning, stacklevel=2) if not kw: return item(*args) return item(*args, **kw)
def SetRect(
self, rect)
def _Window_SetRect(self, rect): return self.SetSize(rect)
def SetSizeHintsSz(
*args, **kw)
def deprecated_func(*args, **kw): warnings.warn("Call to deprecated item%s. %s" % (name, msg), wxPyDeprecationWarning, stacklevel=2) if not kw: return item(*args) return item(*args, **kw)
def SetSizeWH(
*args, **kw)
def deprecated_func(*args, **kw): warnings.warn("Call to deprecated item%s. %s" % (name, msg), wxPyDeprecationWarning, stacklevel=2) if not kw: return item(*args) return item(*args, **kw)
def SetToolTipString(
*args, **kw)
def deprecated_func(*args, **kw): warnings.warn("Call to deprecated item%s. %s" % (name, msg), wxPyDeprecationWarning, stacklevel=2) if not kw: return item(*args) return item(*args, **kw)
def SetVirtualSizeWH(
*args, **kw)
def deprecated_func(*args, **kw): warnings.warn("Call to deprecated item%s. %s" % (name, msg), wxPyDeprecationWarning, stacklevel=2) if not kw: return item(*args) return item(*args, **kw)
def Unbind(
self, event, source=None, id=-1, id2=-1, handler=None)
Disconnects the event handler binding for event from self
.
Returns True
if successful.
def _EvtHandler_Unbind(self, event, source=None, id=wx.ID_ANY, id2=wx.ID_ANY, handler=None): """ Disconnects the event handler binding for event from `self`. Returns ``True`` if successful. """ if source is not None: id = source.GetId() return event.Unbind(self, id, id2, handler)
Instance variables
var AcceleratorTable
GetAcceleratorTable() -> AcceleratorTable
Gets the accelerator table for this window.
var AdditionalCaretForeground
GetAdditionalCaretForeground() -> Colour
Get the foreground colour of additional carets.
var AdditionalCaretsBlink
GetAdditionalCaretsBlink() -> bool
Whether additional carets will blink.
var AdditionalCaretsVisible
GetAdditionalCaretsVisible() -> bool
Whether additional carets are visible.
var AdditionalSelAlpha
GetAdditionalSelAlpha() -> int
Get the alpha of the selection.
var AdditionalSelectionTyping
GetAdditionalSelectionTyping() -> bool
Whether typing can be performed into multiple selections.
var AllLinesVisible
GetAllLinesVisible() -> bool
Are all lines visible?
var Anchor
GetAnchor() -> int
Returns the position of the opposite end of the selection to the caret.
var AutoLayout
GetAutoLayout() -> bool
Returns the sizer of which this window is a member, if any, otherwise NULL.
var BackSpaceUnIndents
GetBackSpaceUnIndents() -> bool
Does a backspace pressed when caret is within indentation unindent?
var BackgroundColour
GetBackgroundColour() -> Colour
Returns the background colour of the window.
var BackgroundStyle
GetBackgroundStyle() -> BackgroundStyle
Returns the background style of the window.
var BestSize
GetBestSize() -> Size
This functions returns the best acceptable minimal size for the window.
var BestVirtualSize
GetBestVirtualSize() -> Size
Return the largest of ClientSize and BestSize (as determined by a sizer, interior children, or other means)
var Border
GetBorder(flags) -> Border GetBorder() -> Border
Get the window border style from the given flags: this is different from simply doing flags & wxBORDER_MASK because it uses GetDefaultBorder() to translate wxBORDER_DEFAULT to something reasonable.
var BufferedDraw
GetBufferedDraw() -> bool
Is drawing done first into a buffer or direct to the screen?
var Caret
GetCaret() -> Caret
Returns the caret() associated with the window.
var CaretForeground
GetCaretForeground() -> Colour
Get the foreground colour of the caret.
var CaretLineBackAlpha
GetCaretLineBackAlpha() -> int
Get the background alpha of the caret line.
var CaretLineBackground
GetCaretLineBackground() -> Colour
Get the colour of the background of the line containing the caret.
var CaretLineVisible
GetCaretLineVisible() -> bool
Is the background of the line containing the caret in a different colour?
var CaretPeriod
GetCaretPeriod() -> int
Get the time in milliseconds that the caret is on and off.
var CaretSticky
GetCaretSticky() -> int
Can the caret preferred x position only be changed by explicit movement commands?
var CaretStyle
GetCaretStyle() -> int
Returns the current style of the caret.
var CaretWidth
GetCaretWidth() -> int
Returns the width of the insert mode caret.
var CharHeight
GetCharHeight() -> int
Returns the character height for this window.
var CharWidth
GetCharWidth() -> int
Returns the average character width for this window.
var CharacterPointer
GetCharacterPointer() -> PyObject
Compact the document buffer and return a read-only memoryview object of the characters in the document.
var Children
GetChildren() -> WindowList
Returns a reference to the list of the window's children.
var ClassInfo
GetClassInfo() -> ClassInfo
This virtual function is redefined for every class that requires run- time type information, when using the wxDECLARE_CLASS macro (or similar).
var ClassName
GetClassName() -> Char
Returns the class name of the C++ class using wxRTTI.
var ClientAreaOrigin
GetClientAreaOrigin() -> Point
Get the origin of the client area of the window relative to the window top left corner (the client area may be shifted because of the borders, scrollbars, other decorations...)
var ClientRect
GetClientRect() -> Rect
Get the client rectangle in window (i.e. client) coordinates.
var ClientSize
GetClientSize() -> Size
Returns the size of the window 'client area' in pixels.
var CodePage
GetCodePage() -> int
Get the code page used to interpret the bytes of the document as characters.
var Constraints
GetConstraints() -> LayoutConstraints
Returns a pointer to the window's layout constraints, or NULL if there are none.
var ContainingSizer
GetContainingSizer() -> Sizer
Returns the sizer of which this window is a member, if any, otherwise NULL.
var ControlCharSymbol
GetControlCharSymbol() -> int
Get the way control characters are displayed.
var CurLine
GetCurLine() -> (String, linePos)
Retrieve the text of the line containing the caret.
var CurLineRaw
GetCurLineRaw() -> (CharBuffer, linePos)
Retrieve the text of the line containing the caret.
var CurrentLine
GetCurrentLine() -> int
Returns the line number of the line with the caret.
var CurrentPos
GetCurrentPos() -> int
Returns the position of the caret.
var Cursor
GetCursor() -> Cursor
Return the cursor associated with this window.
var DefaultAttributes
GetDefaultAttributes() -> VisualAttributes
Currently this is the same as calling wxWindow::GetClassDefaultAttributes(wxWindow::GetWindowVariant()).
var DefaultStyle
GetDefaultStyle() -> TextAttr
Returns the style currently used for the new text.
var DocPointer
GetDocPointer() -> void
Retrieve a pointer to the document object.
var DropTarget
GetDropTarget() -> DropTarget
Returns the associated drop target, which may be NULL.
var EOLMode
GetEOLMode() -> int
Retrieve the current end of line mode - one of CRLF, CR, or LF.
var EdgeColour
GetEdgeColour() -> Colour
Retrieve the colour used in edge indication.
var EdgeColumn
GetEdgeColumn() -> int
Retrieve the column number which text should be kept within.
var EdgeMode
GetEdgeMode() -> int
Retrieve the edge highlight mode.
var EffectiveMinSize
GetEffectiveMinSize() -> Size
Merges the window's best size into the min size and returns the result.
var Enabled
IsEnabled() -> bool
Returns true if the window is enabled, i.e. if it accepts user input, false otherwise.
var EndAtLastLine
GetEndAtLastLine() -> bool
Retrieve whether the maximum scroll position has the last line at the bottom of the view.
var EndStyled
GetEndStyled() -> int
Retrieve the position of the last correctly styled character.
var EventHandler
GetEventHandler() -> EvtHandler
Returns the event handler for this window.
var EvtHandlerEnabled
GetEvtHandlerEnabled() -> bool
Returns true if the event handler is enabled, false otherwise.
var ExtraAscent
GetExtraAscent() -> int
Get extra ascent for each line.
var ExtraDescent
GetExtraDescent() -> int
Get extra descent for each line.
var ExtraStyle
GetExtraStyle() -> long
Returns the extra style bits for the window.
var FirstVisibleLine
GetFirstVisibleLine() -> int
Retrieve the display line at the top of the display.
var Font
GetFont() -> Font
Returns the font for this window.
var ForegroundColour
GetForegroundColour() -> Colour
Returns the foreground colour of the window.
var GapPosition
GetGapPosition() -> int
Return a position which, to avoid performance costs, should not be within the range of a call to GetRangePointer.
var GrandParent
GetGrandParent() -> Window
Returns the grandparent of a window, or NULL if there isn't one.
var Handle
GetHandle() -> UIntPtr
Returns the platform-specific handle of the physical window.
var HelpText
GetHelpText() -> String
Gets the help text to be used as context-sensitive help for this window.
var HighlightGuide
GetHighlightGuide() -> int
Get the highlighted indentation guide column.
var Hint
GetHint() -> String
Returns the current hint string.
var HotspotActiveBackground
GetHotspotActiveBackground() -> Colour
Get the back colour for active hotspots.
var HotspotActiveForeground
GetHotspotActiveForeground() -> Colour
Get the fore colour for active hotspots.
var HotspotActiveUnderline
GetHotspotActiveUnderline() -> bool
Get whether underlining for active hotspots.
var HotspotSingleLine
GetHotspotSingleLine() -> bool
Get the HotspotSingleLine property.
var Id
GetId() -> WindowID
Returns the identifier of the window.
var Identifier
GetIdentifier() -> int
Get the identifier.
var Indent
GetIndent() -> int
Retrieve indentation size.
var IndentationGuides
GetIndentationGuides() -> int
Are the indentation guides visible?
var IndicatorCurrent
GetIndicatorCurrent() -> int
Get the current indicator.
var IndicatorValue
GetIndicatorValue() -> int
Get the current indicator value.
var InsertionPoint
GetInsertionPoint() -> long
Returns the insertion point, or cursor, position.
var KeysUnicode
GetKeysUnicode() -> bool
Are keys always interpreted as Unicode?
var Label
GetLabel() -> String
Returns the control's label, as it was passed to SetLabel().
var LabelText
GetLabelText() -> String GetLabelText(label) -> String
Returns the control's label without mnemonics.
var LastKeydownProcessed
GetLastKeydownProcessed() -> bool
Can be used to prevent the EVT_CHAR handler from adding the char.
var LastPosition
GetLastPosition() -> long
Returns the zero based index of the last position in the text control, which is equal to the number of characters in the control.
var LayoutCache
GetLayoutCache() -> int
Retrieve the degree of caching of layout information.
var LayoutDirection
GetLayoutDirection() -> LayoutDirection
Returns the layout direction for this window, Note that wxLayout_Default is returned if layout direction is not supported.
var Length
GetLength() -> int
Returns the number of bytes in the document.
var Lexer
GetLexer() -> int
Retrieve the lexing language of the document.
var LineCount
GetLineCount() -> int
Returns the number of lines in the document.
var MainSelection
GetMainSelection() -> int
Which selection is the main selection.
var MarginLeft
GetMarginLeft() -> int
Returns the size in pixels of the left margin.
var MarginOptions
GetMarginOptions() -> int
Get the margin options.
var MarginRight
GetMarginRight() -> int
Returns the size in pixels of the right margin.
var Margins
GetMargins() -> Point
Returns the margins used by the control.
var MaxClientSize
GetMaxClientSize() -> Size
Returns the maximum size of window's client area.
var MaxHeight
GetMaxHeight() -> int
Returns the vertical component of window maximal size.
var MaxLineState
GetMaxLineState() -> int
Retrieve the last line number that has line state.
var MaxSize
GetMaxSize() -> Size
Returns the maximum size of the window.
var MaxWidth
GetMaxWidth() -> int
Returns the horizontal component of window maximal size.
var MinClientSize
GetMinClientSize() -> Size
Returns the minimum size of window's client area, an indication to the sizer layout mechanism that this is the minimum required size of its client area.
var MinHeight
GetMinHeight() -> int
Returns the vertical component of window minimal size.
var MinSize
GetMinSize() -> Size
Returns the minimum size of the window, an indication to the sizer layout mechanism that this is the minimum required size.
var MinWidth
GetMinWidth() -> int
Returns the horizontal component of window minimal size.
var ModEventMask
GetModEventMask() -> int
Get which document modification events are sent to the container.
var Modify
GetModify() -> bool
Is the document different from when it was last saved?
var MouseDownCaptures
GetMouseDownCaptures() -> bool
Get whether mouse gets captured.
var MouseDwellTime
GetMouseDwellTime() -> int
Retrieve the time the mouse must sit still to generate a mouse dwell event.
var MultiPaste
GetMultiPaste() -> int
Retrieve the effect of pasting when there are multiple selections.
var MultipleSelection
GetMultipleSelection() -> bool
Whether multiple selections can be made.
var Name
GetName() -> String
Returns the window's name.
var NextHandler
GetNextHandler() -> EvtHandler
Returns the pointer to the next handler in the chain.
var NumberOfLines
GetNumberOfLines() -> int
var Overtype
GetOvertype() -> bool
Returns true if overtype mode is active otherwise false is returned.
var Parent
GetParent() -> Window
Returns the parent of the window, or NULL if there is no parent.
var PasteConvertEndings
GetPasteConvertEndings() -> bool
Get convert-on-paste setting.
var Position
GetPosition() -> Point
This gets the position of the window in pixels, relative to the parent window for the child windows or relative to the display origin for the top level windows.
var PositionCacheSize
GetPositionCacheSize() -> int
How many entries are allocated to the position cache?
var PreviousHandler
GetPreviousHandler() -> EvtHandler
Returns the pointer to the previous handler in the chain.
var PrintColourMode
GetPrintColourMode() -> int
Returns the print colour mode.
var PrintMagnification
GetPrintMagnification() -> int
Returns the print magnification.
var PrintWrapMode
GetPrintWrapMode() -> int
Is printing line wrapped?
var PunctuationChars
GetPunctuationChars() -> String
Get the set of characters making up punctuation characters.
var RangePointer
GetRangePointer(position, rangeLength) -> PyObject
Return a read-only pointer to a range of characters in the document. May move the gap so that the range is contiguous, but will only move up to rangeLength bytes.
var ReadOnly
GetReadOnly() -> bool
In read-only mode?
var Rect
GetRect() -> Rect
Returns the position and size of the window as a wxRect object.
var RectangularSelectionAnchor
GetRectangularSelectionAnchor() -> int
var RectangularSelectionAnchorVirtualSpace
GetRectangularSelectionAnchorVirtualSpace() -> int
var RectangularSelectionCaret
GetRectangularSelectionCaret() -> int
var RectangularSelectionCaretVirtualSpace
GetRectangularSelectionCaretVirtualSpace() -> int
var RectangularSelectionModifier
GetRectangularSelectionModifier() -> int
Get the modifier key used for rectangular selection.
var RefData
GetRefData() -> ObjectRefData
Returns the wxObject::m_refData pointer, i.e. the data referenced by this object.
var STCCursor
GetSTCCursor() -> int
Get cursor type.
var STCFocus
GetSTCFocus() -> bool
Get internal focus flag.
var ScreenPosition
GetScreenPosition() -> Point
Returns the window position in screen coordinates, whether the window is a child window or a top level one.
var ScreenRect
GetScreenRect() -> Rect
Returns the position and size of the window on the screen as a wxRect object.
var ScrollWidth
GetScrollWidth() -> int
Retrieve the document width assumed for scrolling.
var ScrollWidthTracking
GetScrollWidthTracking() -> bool
Retrieve whether the scroll width tracks wide lines.
var SearchFlags
GetSearchFlags() -> int
Get the search flags used by SearchInTarget.
var SelAlpha
GetSelAlpha() -> int
Get the alpha of the selection.
var SelEOLFilled
GetSelEOLFilled() -> bool
Is the selection end of line filled?
var SelectedText
GetSelectedText() -> String
Retrieve the selected text.
var SelectedTextRaw
GetSelectedTextRaw() -> CharBuffer
Retrieve the selected text.
var SelectionEnd
GetSelectionEnd() -> int
Returns the position at the end of the selection.
var SelectionMode
GetSelectionMode() -> int
Get the mode of the current selection.
var SelectionStart
GetSelectionStart() -> int
Returns the position at the start of the selection.
var Selections
GetSelections() -> int
How many selections are there?
var Shown
IsShown() -> bool
Returns true if the window is shown, false if it has been hidden.
var Size
GetSize() -> Size
Returns the size of the entire window in pixels, including title bar, border, scrollbars, etc.
var Sizer
GetSizer() -> Sizer
Returns the sizer associated with the window by a previous call to SetSizer(), or NULL.
var Status
GetStatus() -> int
Get error status.
var StringSelection
GetStringSelection() -> String
Gets the text currently selected in the control.
var StyleBits
GetStyleBits() -> int
Retrieve number of bits in style bytes used to hold the lexical state.
var StyleBitsNeeded
GetStyleBitsNeeded() -> int
Retrieve the number of bits the current lexer needs for styling.
var TabIndents
GetTabIndents() -> bool
Does a tab pressed when caret is within indentation indent?
var TabWidth
GetTabWidth() -> int
Retrieve the visible size of a tab.
var TargetEnd
GetTargetEnd() -> int
Get the position that ends the target.
var TargetStart
GetTargetStart() -> int
Get the position that starts the target.
var Technology
GetTechnology() -> int
Get the tech.
var Text
GetText() -> String
Retrieve all the text in the document.
var TextLength
GetTextLength() -> int
Retrieve the number of characters in the document.
var TextRaw
GetTextRaw() -> CharBuffer
Retrieve all the text in the document.
var ThemeEnabled
GetThemeEnabled() -> bool
Clears the window by filling it with the current background colour.
var ToolTip
GetToolTip() -> ToolTip
Get the associated tooltip or NULL if none.
var TopLevel
IsTopLevel() -> bool
Returns true if the given window is a top-level one.
var TopLevelParent
GetTopLevelParent() -> Window
Returns the first ancestor of this window which is a top-level window.
var TwoPhaseDraw
GetTwoPhaseDraw() -> bool
Is drawing done in two phases with backgrounds drawn before foregrounds?
var UndoCollection
GetUndoCollection() -> bool
Is undo history being collected?
var UpdateClientRect
GetUpdateClientRect() -> Rect
Get the update rectangle bounding box in client coords.
var UpdateRegion
GetUpdateRegion() -> Region
Returns the region specifying which parts of the window have been damaged.
var UseHorizontalScrollBar
GetUseHorizontalScrollBar() -> bool
Is the horizontal scroll bar visible?
var UseTabs
GetUseTabs() -> bool
Retrieve whether tabs will be used in indentation.
var UseVerticalScrollBar
GetUseVerticalScrollBar() -> bool
Is the vertical scroll bar visible?
var Validator
GetValidator() -> Validator
Validator functions.
var Value
GetValue() -> String
Gets the contents of the control.
var ViewEOL
GetViewEOL() -> bool
Are the end of line characters visible?
var ViewWhiteSpace
GetViewWhiteSpace() -> int
Are white space characters currently visible? Returns one of SCWS_* constants.
var VirtualSize
GetVirtualSize() -> Size
This gets the virtual size of the window in pixels.
var VirtualSpaceOptions
GetVirtualSpaceOptions() -> int
var WhitespaceChars
GetWhitespaceChars() -> String
Get the set of characters making up whitespace for when moving or selecting by word.
var WhitespaceSize
GetWhitespaceSize() -> int
Get the size of the dots used to mark space characters.
var WindowStyle
GetWindowStyle() -> long
See GetWindowStyleFlag() for more info.
var WindowStyleFlag
GetWindowStyleFlag() -> long
Gets the window style that was passed to the constructor or Create() method.
var WindowVariant
GetWindowVariant() -> WindowVariant
Returns the value previously passed to SetWindowVariant().
var WordChars
GetWordChars() -> String
Get the set of characters making up words for when moving or selecting by word.
var WrapIndentMode
GetWrapIndentMode() -> int
Retrieve how wrapped sublines are placed.
var WrapMode
GetWrapMode() -> int
Retrieve whether text is word wrapped.
var WrapStartIndent
GetWrapStartIndent() -> int
Retrive the start indent for wrapped lines.
var WrapVisualFlags
GetWrapVisualFlags() -> int
Retrive the display mode of visual flags for wrapped lines.
var WrapVisualFlagsLocation
GetWrapVisualFlagsLocation() -> int
Retrive the location of visual flags for wrapped lines.
var XOffset
GetXOffset() -> int
var Zoom
GetZoom() -> int
Retrieve the zoom level.
Module variables
var demoText
var faces
var overview
var wxID_STYLEDTEXTCTRLPANEL
var wxID_STYLEDTEXTCTRLPANELSTYLEDTEXTCTRL1