def DefineMarkers(self): """Defines the folder and bookmark icons for this control @postcondition: all margin markers are defined """ style = self.GetItemByName('foldmargin_style') # The foreground/background settings for the marker column seem to # backwards from what the parameters take so use our Fore color for # the stcs back and visa versa for our Back color. back = style.GetFore() rgb = eclib.HexToRGB(back[1:]) back = wx.Colour(red=rgb[0], green=rgb[1], blue=rgb[2]) fore = style.GetBack() rgb = eclib.HexToRGB(fore[1:]) fore = wx.Colour(red=rgb[0], green=rgb[1], blue=rgb[2]) self.MarkerDefine(wx.stc.STC_MARKNUM_FOLDEROPEN, wx.stc.STC_MARK_BOXMINUS, fore, back) self.MarkerDefine(wx.stc.STC_MARKNUM_FOLDER, wx.stc.STC_MARK_BOXPLUS, fore, back) self.MarkerDefine(wx.stc.STC_MARKNUM_FOLDERSUB, wx.stc.STC_MARK_VLINE, fore, back) self.MarkerDefine(wx.stc.STC_MARKNUM_FOLDERTAIL, wx.stc.STC_MARK_LCORNER, fore, back) self.MarkerDefine(wx.stc.STC_MARKNUM_FOLDEREND, wx.stc.STC_MARK_BOXPLUSCONNECTED, fore, back) self.MarkerDefine(wx.stc.STC_MARKNUM_FOLDEROPENMID, wx.stc.STC_MARK_BOXMINUSCONNECTED, fore, back) self.MarkerDefine(wx.stc.STC_MARKNUM_FOLDERMIDTAIL, wx.stc.STC_MARK_TCORNER, fore, back) self.MarkerDefine(0, wx.stc.STC_MARK_SHORTARROW, fore, back) self.SetFoldMarginHiColour(True, fore) self.SetFoldMarginColour(True, fore)
def DefineMarkers(self): """Defines the folder and bookmark icons for this control @postcondition: all margin markers are defined """ # Get the colours for the various markers style = self.GetItemByName('foldmargin_style') back = style.GetFore() rgb = eclib.HexToRGB(back[1:]) back = wx.Colour(red=rgb[0], green=rgb[1], blue=rgb[2]) fore = style.GetBack() rgb = eclib.HexToRGB(fore[1:]) fore = wx.Colour(red=rgb[0], green=rgb[1], blue=rgb[2]) # Buffer background highlight caret_line = self.GetItemByName('caret_line').GetBack() rgb = eclib.HexToRGB(caret_line[1:]) clback = wx.Colour(*rgb) # Code Folding markers folder = ed_marker.FoldMarker() folder.Foreground = fore folder.Background = back folder.RegisterWithStc(self) # Bookmarks ed_marker.Bookmark().RegisterWithStc(self) # Breakpoints ed_marker.Breakpoint().RegisterWithStc(self) ed_marker.BreakpointDisabled().RegisterWithStc(self) step = ed_marker.BreakpointStep() step.Background = clback step.RegisterWithStc(self)
def testHexToRGB(self): """Test conversion of a hex value to a rgb tuple""" c = eclib.HexToRGB("000000") self.assertEquals(c, [0, 0, 0]) c = eclib.HexToRGB("#000000") self.assertEquals(c, [0, 0, 0]) c = eclib.HexToRGB("#0000FF") self.assertEquals(c, [0, 0, 255]) c = eclib.HexToRGB("#FF00FF") self.assertEquals(c, [255, 0, 255]) self.assertRaises(ValueError, eclib.HexToRGB, "FF23GG")
def HexToRGB(hex_str): """Returns a list of red/green/blue values from a hex string. @param hex_str: hex string to convert to rgb @note: DON'T USE THIS FUNCTION use the one in eclib instead this will be removed at some point. """ return eclib.HexToRGB(hex_str)
def UpdateBaseStyles(self): """Updates the base styles of editor to the current settings @postcondition: base style info is updated """ self.StyleDefault() self.SetMargins(4, 0) # Global default styles for all languages self.StyleSetSpec(0, self.GetStyleByName('default_style')) self.StyleSetSpec(wx.stc.STC_STYLE_DEFAULT, \ self.GetStyleByName('default_style')) self.StyleSetSpec(wx.stc.STC_STYLE_LINENUMBER, \ self.GetStyleByName('line_num')) self.StyleSetSpec(wx.stc.STC_STYLE_CONTROLCHAR, \ self.GetStyleByName('ctrl_char')) self.StyleSetSpec(wx.stc.STC_STYLE_BRACELIGHT, \ self.GetStyleByName('brace_good')) self.StyleSetSpec(wx.stc.STC_STYLE_BRACEBAD, \ self.GetStyleByName('brace_bad')) self.StyleSetSpec(wx.stc.STC_STYLE_INDENTGUIDE, \ self.GetStyleByName('guide_style')) # wx.stc.STC_STYLE_CALLTIP doesn't seem to do anything calltip = self.GetItemByName('calltip') self.CallTipSetBackground(calltip.GetBack()) self.CallTipSetForeground(calltip.GetFore()) sback = self.GetItemByName('select_style') if not sback.IsNull() and len(sback.GetBack()): sback = sback.GetBack() sback = eclib.HexToRGB(sback) sback = wx.Colour(*sback) else: sback = wx.SystemSettings.GetColour(wx.SYS_COLOUR_HIGHLIGHT) # If selection colour is dark make the foreground white # else use the default settings. if sum(sback.Get()) < 384: self.SetSelForeground(True, wx.WHITE) else: self.SetSelForeground(True, wx.BLACK) self.SetSelBackground(True, sback) # Causes issues with selecting text when view whitespace is on # wspace = self.GetItemByName('whitespace_style') # self.SetWhitespaceBackground(True, wspace.GetBack()) # self.SetWhitespaceForeground(True, wspace.GetFore()) default_fore = self.GetDefaultForeColour() edge_colour = self.GetItemByName('edge_style') self.SetEdgeColour(edge_colour.GetFore()) self.SetCaretForeground(default_fore) self.SetCaretLineBack(self.GetItemByName('caret_line').GetBack()) self.Colourise(0, -1)
def AddColor(self, si_color): """Takes a style item and adds it to the table if has not already been defined in the table. @param si_color: hex color string """ if si_color not in self._index: rgb = eclib.HexToRGB(si_color.split(u',')[0]) color = "\\red%d\\green%d\\blue%d;" % tuple(rgb) self._index.append(si_color) self._tbl[si_color] = color else: pass
def GetDefaultBackColour(self, as_hex=False): """Gets the background color of the default style and returns a Colour object. Otherwise returns white if the default style is not found. @keyword as_hex: return a hex string or colour object @return: wx.Colour of default style background or hex value """ back = self.GetItemByName('default_style').GetBack() if not back: back = u"#FFFFFF" if not as_hex: rgb = eclib.HexToRGB(back[1:]) back = wx.Colour(red=rgb[0], green=rgb[1], blue=rgb[2]) return back
def GetDefaultForeColour(self, as_hex=False): """Gets the foreground color of the default style and returns a Colour object. Otherwise returns Black if the default style is not found. @keyword as_hex: return a hex string or colour object @return: wx.Colour of default style foreground or hex value """ fore = self.GetItemByName('default_style').GetFore() if not fore: fore = u"#000000" if not as_hex: rgb = eclib.HexToRGB(fore[1:]) fore = wx.Colour(red=rgb[0], green=rgb[1], blue=rgb[2]) return fore