bpo-34548: IDLE: use configured theme colors in TextView (GH-9008)
https://bugs.python.org/issue34548
(cherry picked from commit c87d9f406b
)
Co-authored-by: Tal Einat <taleinat+github@gmail.com>
This commit is contained in:
parent
c73df53569
commit
aeadf59e45
|
@ -31,11 +31,12 @@ 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.
|
||||
def color_config(text):
|
||||
"""Set color options of Text widget.
|
||||
|
||||
Should be called whenever ColorDelegator is called.
|
||||
'''
|
||||
If ColorDelegator is used, this should be called first.
|
||||
"""
|
||||
# Called from htest, TextFrame, Editor, and Turtledemo.
|
||||
# Not automatic because ColorDelegator does not know 'text'.
|
||||
theme = idleConf.CurrentTheme()
|
||||
normal_colors = idleConf.GetHighlight(theme, 'normal')
|
||||
|
@ -50,6 +51,7 @@ def color_config(text): # Called from htest, Editor, and Turtle Demo.
|
|||
inactiveselectbackground=select_colors['background'], # new in 8.5
|
||||
)
|
||||
|
||||
|
||||
class ColorDelegator(Delegator):
|
||||
|
||||
def __init__(self):
|
||||
|
@ -285,6 +287,7 @@ def _color_delegator(parent): # htest #
|
|||
d = ColorDelegator()
|
||||
p.insertfilter(d)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
from unittest import main
|
||||
main('idlelib.idle_test.test_colorizer', verbosity=2, exit=False)
|
||||
|
|
|
@ -5,6 +5,8 @@ from tkinter import Toplevel, Text
|
|||
from tkinter.ttk import Frame, Scrollbar, Button
|
||||
from tkinter.messagebox import showerror
|
||||
|
||||
from idlelib.colorizer import color_config
|
||||
|
||||
|
||||
class TextFrame(Frame):
|
||||
"Display text with scrollbar."
|
||||
|
@ -18,12 +20,9 @@ class TextFrame(Frame):
|
|||
super().__init__(parent)
|
||||
self['relief'] = 'sunken'
|
||||
self['height'] = 700
|
||||
# TODO: get fg/bg from theme.
|
||||
self.bg = '#ffffff'
|
||||
self.fg = '#000000'
|
||||
|
||||
self.text = text = Text(self, wrap='word', highlightthickness=0,
|
||||
fg=self.fg, bg=self.bg)
|
||||
self.text = text = Text(self, wrap='word', highlightthickness=0)
|
||||
color_config(text)
|
||||
self.scroll = scroll = Scrollbar(self, orient='vertical',
|
||||
takefocus=False, command=text.yview)
|
||||
text['yscrollcommand'] = scroll.set
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
Use configured color theme for read-only text views.
|
Loading…
Reference in New Issue