diff options
author | Terry Jan Reedy <tjreedy@udel.edu> | 2016-05-29 05:40:30 (GMT) |
---|---|---|
committer | Terry Jan Reedy <tjreedy@udel.edu> | 2016-05-29 05:40:30 (GMT) |
commit | e8a175eaa067d0f434933d2f003260a6d739c2d1 (patch) | |
tree | 9b311516a170f241f118e280eccb673f3bbda78b /Lib | |
parent | 58dd7648dede087f1f3cbedd70cd095ba9f1a381 (diff) | |
download | cpython-e8a175eaa067d0f434933d2f003260a6d739c2d1.zip cpython-e8a175eaa067d0f434933d2f003260a6d739c2d1.tar.gz cpython-e8a175eaa067d0f434933d2f003260a6d739c2d1.tar.bz2 |
Issue #27117: Make ColorDelegator htest and turtledemo work with dark theme.
Factor out code for configuring text widget colors to a new function.
Diffstat (limited to 'Lib')
-rw-r--r-- | Lib/idlelib/ColorDelegator.py | 25 | ||||
-rw-r--r-- | Lib/idlelib/EditorWindow.py | 17 | ||||
-rw-r--r-- | Lib/turtledemo/__main__.py | 5 |
3 files changed, 31 insertions, 16 deletions
diff --git a/Lib/idlelib/ColorDelegator.py b/Lib/idlelib/ColorDelegator.py index 9f31349..02eac47 100644 --- a/Lib/idlelib/ColorDelegator.py +++ b/Lib/idlelib/ColorDelegator.py @@ -2,6 +2,7 @@ import time import re import keyword import builtins +from tkinter import TkVersion from idlelib.Delegator import Delegator from idlelib.configHandler import idleConf @@ -32,6 +33,28 @@ def make_pat(): prog = re.compile(make_pat(), re.S) idprog = re.compile(r"\s+(\w+)", re.S) +def color_config(text): # Called from htest, Editor, and Turtle Demo. + '''Set color opitons of Text widget. + + Should be called whenever ColorDelegator is called. + ''' + # Not automatic because ColorDelegator does not know 'text'. + theme = idleConf.CurrentTheme() + normal_colors = idleConf.GetHighlight(theme, 'normal') + cursor_color = idleConf.GetHighlight(theme, 'cursor', fgBg='fg') + select_colors = idleConf.GetHighlight(theme, 'hilite') + text.config( + foreground=normal_colors['foreground'], + background=normal_colors['background'], + insertbackground=cursor_color, + selectforeground=select_colors['foreground'], + selectbackground=select_colors['background'], + ) + if TkVersion >= 8.5: + text.config( + inactiveselectbackground=select_colors['background']) + + class ColorDelegator(Delegator): def __init__(self): @@ -233,6 +256,7 @@ class ColorDelegator(Delegator): for tag in self.tagdefs: self.tag_remove(tag, "1.0", "end") + def _color_delegator(parent): # htest # from tkinter import Toplevel, Text from idlelib.Percolator import Percolator @@ -247,6 +271,7 @@ def _color_delegator(parent): # htest # text.insert("insert", source) text.focus_set() + color_config(text) p = Percolator(text) d = ColorDelegator() p.insertfilter(d) diff --git a/Lib/idlelib/EditorWindow.py b/Lib/idlelib/EditorWindow.py index b5868be..9944da3 100644 --- a/Lib/idlelib/EditorWindow.py +++ b/Lib/idlelib/EditorWindow.py @@ -90,7 +90,7 @@ helpDialog = HelpDialog() # singleton instance, no longer used class EditorWindow(object): from idlelib.Percolator import Percolator - from idlelib.ColorDelegator import ColorDelegator + from idlelib.ColorDelegator import ColorDelegator, color_config from idlelib.UndoDelegator import UndoDelegator from idlelib.IOBinding import IOBinding, filesystemencoding, encoding from idlelib import Bindings @@ -742,20 +742,7 @@ class EditorWindow(object): # Called from self.filename_change_hook and from configDialog.py self._rmcolorizer() self._addcolorizer() - theme = idleConf.CurrentTheme() - normal_colors = idleConf.GetHighlight(theme, 'normal') - cursor_color = idleConf.GetHighlight(theme, 'cursor', fgBg='fg') - select_colors = idleConf.GetHighlight(theme, 'hilite') - self.text.config( - foreground=normal_colors['foreground'], - background=normal_colors['background'], - insertbackground=cursor_color, - selectforeground=select_colors['foreground'], - selectbackground=select_colors['background'], - ) - if TkVersion >= 8.5: - self.text.config( - inactiveselectbackground=select_colors['background']) + EditorWindow.color_config(self.text) IDENTCHARS = string.ascii_letters + string.digits + "_" diff --git a/Lib/turtledemo/__main__.py b/Lib/turtledemo/__main__.py index 106d058..711d0ab 100644 --- a/Lib/turtledemo/__main__.py +++ b/Lib/turtledemo/__main__.py @@ -89,8 +89,8 @@ import sys import os from tkinter import * +from idlelib.ColorDelegator import ColorDelegator, color_config from idlelib.Percolator import Percolator -from idlelib.ColorDelegator import ColorDelegator from idlelib.textView import view_text from turtledemo import __doc__ as about_turtledemo @@ -124,6 +124,8 @@ help_entries = ( # (help_label, help_doc) ('About turtle module', turtle.__doc__), ) + + class DemoWindow(object): def __init__(self, filename=None): @@ -204,6 +206,7 @@ class DemoWindow(object): self.text_frame = text_frame = Frame(root) self.text = text = Text(text_frame, name='text', padx=5, wrap='none', width=45) + color_config(text) self.vbar = vbar = Scrollbar(text_frame, name='vbar') vbar['command'] = text.yview |