From d36d817a8464426953da8558d3c397f0378e046e Mon Sep 17 00:00:00 2001 From: Terry Jan Reedy Date: Mon, 16 Nov 2015 07:32:26 -0500 Subject: [PATCH] Issue #24750: Improve appearance of IDLE editor window status bar. Patch by Mark Roseman. --- Lib/idlelib/EditorWindow.py | 3 +++ Lib/idlelib/MultiStatusBar.py | 8 +++++--- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/Lib/idlelib/EditorWindow.py b/Lib/idlelib/EditorWindow.py index 58a01dc1a23..b5868be3fb8 100644 --- a/Lib/idlelib/EditorWindow.py +++ b/Lib/idlelib/EditorWindow.py @@ -156,6 +156,7 @@ class EditorWindow(object): 'name': 'text', 'padx': 5, 'wrap': 'none', + 'highlightthickness': 0, 'width': self.width, 'height': idleConf.GetOption('main', 'EditorWindow', 'height', type='int')} @@ -380,6 +381,7 @@ class EditorWindow(object): def set_status_bar(self): self.status_bar = self.MultiStatusBar(self.top) + sep = Frame(self.top, height=1, borderwidth=1, background='grey75') if sys.platform == "darwin": # Insert some padding to avoid obscuring some of the statusbar # by the resize widget. @@ -387,6 +389,7 @@ class EditorWindow(object): self.status_bar.set_label('column', 'Col: ?', side=RIGHT) self.status_bar.set_label('line', 'Ln: ?', side=RIGHT) self.status_bar.pack(side=BOTTOM, fill=X) + sep.pack(side=BOTTOM, fill=X) self.text.bind("<>", self.set_line_and_column) self.text.event_add("<>", "", "") diff --git a/Lib/idlelib/MultiStatusBar.py b/Lib/idlelib/MultiStatusBar.py index f44b6a86022..ac290a18655 100644 --- a/Lib/idlelib/MultiStatusBar.py +++ b/Lib/idlelib/MultiStatusBar.py @@ -8,13 +8,15 @@ class MultiStatusBar(Frame): Frame.__init__(self, master, **kw) self.labels = {} - def set_label(self, name, text='', side=LEFT): + def set_label(self, name, text='', side=LEFT, width=0): if name not in self.labels: - label = Label(self, bd=1, relief=SUNKEN, anchor=W) - label.pack(side=side) + label = Label(self, borderwidth=0, anchor=W) + label.pack(side=side, pady=0, padx=4) self.labels[name] = label else: label = self.labels[name] + if width != 0: + label.config(width=width) label.config(text=text) def _multistatus_bar(parent):