diff --git a/Tools/idle/ColorDelegator.py b/Tools/idle/ColorDelegator.py index 8e4667a9877..e04526a3472 100644 --- a/Tools/idle/ColorDelegator.py +++ b/Tools/idle/ColorDelegator.py @@ -4,6 +4,7 @@ import re import keyword from Tkinter import * from Delegator import Delegator +import IdlePrefs #$ event <> #$ win @@ -50,19 +51,29 @@ class ColorDelegator(Delegator): apply(self.tag_configure, (tag,), cnf) self.tag_raise('sel') + cprefs = IdlePrefs.ColorPrefs() + tagdefs = { - "COMMENT": {"foreground": "#dd0000"}, - "KEYWORD": {"foreground": "#ff7700"}, - "STRING": {"foreground": "#00aa00"}, - "DEFINITION": {"foreground": "#0000ff"}, + "COMMENT": {"foreground": cprefs.CComment[0], + "background": cprefs.CComment[1]}, + "KEYWORD": {"foreground": cprefs.CKeyword[0], + "background": cprefs.CKeyword[1]}, + "STRING": {"foreground": cprefs.CString[0], + "background": cprefs.CString[1]}, + "DEFINITION": {"foreground": cprefs.CDefinition[0], + "background": cprefs.CDefinition[1]}, - "SYNC": {}, #{"background": "#ffff00"}, - "TODO": {}, #{"background": "#cccccc"}, + "SYNC": {"background": cprefs.CSync[0], + "background": cprefs.CSync[1]}, + "TODO": {"background": cprefs.CTodo[0], + "background": cprefs.CTodo[1]}, - "BREAK": {"background": "#FF7777"}, + "BREAK": {"background": cprefs.CBreak[0], + "background": cprefs.CBreak[1]}, # The following is used by ReplaceDialog: - "hit": {"foreground": "#FFFFFF", "background": "#000000"}, + "hit": {"foreground": cprefs.CHit[0], + "background": cprefs.CHit[1]}, } def insert(self, index, chars, tags=None): diff --git a/Tools/idle/EditorWindow.py b/Tools/idle/EditorWindow.py index cea3fcd3a90..2c1977566c1 100644 --- a/Tools/idle/EditorWindow.py +++ b/Tools/idle/EditorWindow.py @@ -89,6 +89,7 @@ class EditorWindow: vars = {} def __init__(self, flist=None, filename=None, key=None, root=None): + cprefs = self.ColorDelegator.cprefs self.flist = flist root = root or flist.root self.root = root @@ -98,7 +99,12 @@ class EditorWindow: self.top = top = self.Toplevel(root, menu=self.menubar) self.vbar = vbar = Scrollbar(top, name='vbar') self.text = text = Text(top, name='text', padx=5, - background="white", wrap="none") + foreground=cprefs.CNormal[0], + background=cprefs.CNormal[1], + highlightcolor=cprefs.CHilite[0], + highlightbackground=cprefs.CHilite[1], + insertbackground=cprefs.CCursor[1], + wrap="none") self.createmenubar() self.apply_bindings() diff --git a/Tools/idle/IdlePrefs.py b/Tools/idle/IdlePrefs.py new file mode 100644 index 00000000000..7ca74caabfc --- /dev/null +++ b/Tools/idle/IdlePrefs.py @@ -0,0 +1,65 @@ +# Created on 4/15/99 by Loren Luke +# +# Color Prefs for idle + +class ColorPrefs: + CNormal = "yellow", None + CKeyword = "medium sea green", None + CComment = "white", None + CString = "DarkOrange1", None + CDefinition = "wheat1", None + CHilite = "#000068", "#006868" + CSync = "yellow", None + CTodo = "aquamarine4", None + CBreak = "white", None + CHit = "#000068", None + CStdIn = "yellow", None + CStdOut = "yellow", None + CStdErr = "firebrick3", None + CConsole = "yellow", None + CError = "white", "red" + CCursor = None, "yellow" + + def __init__(self, fg="yellow", bg="DodgerBlue4", ud=1): + self.Default = fg, bg + + # Use Default Colors? + if ud == 1: + # Use Default fg, bg Colors + # Define Screen Colors... + # format: x = (fg, bg) + self.CBreak = "white", "#680000" + self.CComment = "white", self.Default[1] + self.CConsole = self.Default + self.CCursor = None, self.Default[0] + self.CDefinition = "wheat1", self.Default[1] + self.CError = "white", "red" + self.CHilite = "#000068", "#006868" + self.CHit = "#000068", "#006868" + self.CKeyword = "medium sea green", self.Default[1] + self.CNormal = "yellow", self.Default[1] + self.CStdErr = "firebrick3", self.Default[1] + self.CStdIn = self.Default + self.CStdOut = self.Default + self.CString = "DarkOrange1", self.Default[1] + self.CSync = self.Default + self.CTodo = "aquamarine4", self.Default[1] + else: + #Define Screen Colors... + # format: x = (fg, bg) + self.CBreak = "white", None + self.CComment = "white", None + self.CConsole = "yellow", None + self.CCursor = None, "yellow" + self.CDefinition = "wheat1", None + self.CError = "white", "red" + self.CHilite = "#000068", "#006868" + self.CHit = "#000068", None + self.CKeyword = "medium sea green", None + self.CNormal = "yellow", None + self.CStdErr = "firebrick3", None + self.CStdIn = "yellow", None + self.CStdOut = "yellow", None + self.CString = "DarkOrange1", None + self.CSync = "yellow", None + self.CTodo = "aquamarine4", None diff --git a/Tools/idle/PyShell.py b/Tools/idle/PyShell.py index 8bee5d5e9e7..f83ee0c653a 100644 --- a/Tools/idle/PyShell.py +++ b/Tools/idle/PyShell.py @@ -113,14 +113,21 @@ class ModifiedColorDelegator(ColorDelegator): ColorDelegator.recolorize_main(self) tagdefs = ColorDelegator.tagdefs.copy() + cprefs = ColorDelegator.cprefs tagdefs.update({ - ##"stdin": {"background": "yellow"}, - "stdout": {"foreground": "blue"}, - "stderr": {"foreground": "#007700"}, - "console": {"foreground": "#770000"}, - "ERROR": {"background": "#FF7777"}, - None: {"foreground": "purple"}, # default + "stdin": {"foreground": cprefs.CStdIn[0], + "background": cprefs.CStdIn[1]}, + "stdout": {"foreground": cprefs.CStdOut[0], + "background": cprefs.CStdOut[1]}, + "stderr": {"foreground": cprefs.CStdErr[0], + "background": cprefs.CStdErr[1]}, + "console": {"foreground": cprefs.CConsole[0], + "background": cprefs.CConsole[1]}, + "ERROR": {"background": cprefs.CError[0], + "background": cprefs.CError[1]}, + None: {"foreground": cprefs.CNormal[0], + "background": cprefs.CNormal[1]}, })