Issue #22065: Update turtledemo menu creation; don't use obsolete Menubutton.

This commit is contained in:
Terry Jan Reedy 2014-08-15 01:23:02 -04:00
parent 011b55b8d7
commit f819ef74da
1 changed files with 22 additions and 27 deletions

View File

@ -139,22 +139,24 @@ class DemoWindow(object):
stdout=subprocess.DEVNULL,
)
root.grid_rowconfigure(1, weight=1)
root.grid_rowconfigure(0, weight=1)
root.grid_columnconfigure(0, weight=1)
root.grid_columnconfigure(1, minsize=90, weight=1)
root.grid_columnconfigure(2, minsize=90, weight=1)
root.grid_columnconfigure(3, minsize=90, weight=1)
self.mBar = Frame(root, relief=RAISED, borderwidth=2)
self.ExamplesBtn = self.makeLoadDemoMenu()
self.OptionsBtn = self.makeHelpMenu()
self.mBar.grid(row=0, columnspan=4, sticky='news')
self.mBar = Menu(root, relief=RAISED, borderwidth=2)
self.mBar.add_cascade(menu=self.makeLoadDemoMenu(self.mBar),
label='Examples', underline=0, font=menufont)
self.mBar.add_cascade(menu=self.makeHelpMenu(self.mBar),
label='Help', underline=0, font=menufont)
root['menu'] = self.mBar
pane = PanedWindow(orient=HORIZONTAL, sashwidth=5,
sashrelief=SOLID, bg='#ddd')
pane.add(self.makeTextFrame(pane))
pane.add(self.makeGraphFrame(pane))
pane.grid(row=1, columnspan=4, sticky='news')
pane.grid(row=0, columnspan=4, sticky='news')
self.output_lbl = Label(root, height= 1, text=" --- ", bg="#ddf",
font=("Arial", 16, 'normal'), borderwidth=2,
@ -168,10 +170,10 @@ class DemoWindow(object):
self.clear_btn = Button(root, text=" CLEAR ", font=btnfont,
fg="white", disabledforeground="#fed",
command = self.clearCanvas)
self.output_lbl.grid(row=2, column=0, sticky='news', padx=(0,5))
self.start_btn.grid(row=2, column=1, sticky='ew')
self.stop_btn.grid(row=2, column=2, sticky='ew')
self.clear_btn.grid(row=2, column=3, sticky='ew')
self.output_lbl.grid(row=1, column=0, sticky='news', padx=(0,5))
self.start_btn.grid(row=1, column=1, sticky='ew')
self.stop_btn.grid(row=1, column=2, sticky='ew')
self.clear_btn.grid(row=1, column=3, sticky='ew')
Percolator(self.text).insertfilter(ColorDelegator())
self.dirty = False
@ -224,7 +226,7 @@ class DemoWindow(object):
return canvas
def configGUI(self, menu, start, stop, clear, txt="", color="blue"):
self.ExamplesBtn.config(state=menu)
self.mBar.entryconfigure(0, state=menu)
self.start_btn.config(state=start,
bg="#d00" if start == NORMAL else "#fca")
@ -234,35 +236,28 @@ class DemoWindow(object):
bg="#d00" if clear == NORMAL else"#fca")
self.output_lbl.config(text=txt, fg=color)
def makeLoadDemoMenu(self):
CmdBtn = Menubutton(self.mBar, text='Examples',
underline=0, font=menufont)
CmdBtn.pack(side=LEFT, padx="2m")
CmdBtn.menu = Menu(CmdBtn)
def makeLoadDemoMenu(self, master):
menu = Menu(master)
for entry in getExampleEntries():
def loadexample(x):
def emit():
self.loadfile(x)
return emit
CmdBtn.menu.add_command(label=entry, underline=0,
menu.add_command(label=entry, underline=0,
font=menufont, command=loadexample(entry))
CmdBtn['menu'] = CmdBtn.menu
return CmdBtn
return menu
def makeHelpMenu(self):
CmdBtn = Menubutton(self.mBar, text='Help', underline=0, font=menufont)
CmdBtn.pack(side=LEFT, padx='2m')
CmdBtn.menu = Menu(CmdBtn)
def makeHelpMenu(self, master):
menu = Menu(master)
for help_label, help_file in help_entries:
def show(help_label=help_label, help_file=help_file):
view_text(self.root, help_label, help_file)
CmdBtn.menu.add_command(label=help_label, font=menufont, command=show)
menu.add_command(label=help_label, font=menufont, command=show)
CmdBtn['menu'] = CmdBtn.menu
return CmdBtn
return menu
def refreshCanvas(self):
if not self.dirty: return