]> granicus.if.org Git - python/commitdiff
bpo-34548: IDLE: use configured theme colors in TextView (GH-9008)
authorTal Einat <taleinat+github@gmail.com>
Sun, 23 Sep 2018 12:23:15 +0000 (15:23 +0300)
committerMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>
Sun, 23 Sep 2018 12:23:15 +0000 (05:23 -0700)
https://bugs.python.org/issue34548

Lib/idlelib/colorizer.py
Lib/idlelib/textview.py
Misc/NEWS.d/next/IDLE/2018-09-22-20-25-07.bpo-34548.7pBzjg.rst [new file with mode: 0644]

index d626d23121df74bcb89d4c08f2e9a175b1099b2a..d4e592b6ebe077e2fc0cedb46aa534de3788d329 100644 (file)
@@ -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)
index 75b24703b4c357ed6d98a2a1b2b1ffea20540ce5..464e6ac6b94e3172e98daaf3a6bafb0fb03182ab 100644 (file)
@@ -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
diff --git a/Misc/NEWS.d/next/IDLE/2018-09-22-20-25-07.bpo-34548.7pBzjg.rst b/Misc/NEWS.d/next/IDLE/2018-09-22-20-25-07.bpo-34548.7pBzjg.rst
new file mode 100644 (file)
index 0000000..237c0c7
--- /dev/null
@@ -0,0 +1 @@
+Use configured color theme for read-only text views.