Issue #24750: Improve appearance of IDLE editor window status bar.

Patch by Mark Roseman.
This commit is contained in:
Terry Jan Reedy 2015-11-16 07:32:26 -05:00
parent 6e0889f0c7
commit d36d817a84
2 changed files with 8 additions and 3 deletions

View File

@ -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("<<set-line-and-column>>", self.set_line_and_column)
self.text.event_add("<<set-line-and-column>>",
"<KeyRelease>", "<ButtonRelease>")

View File

@ -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):