bpo-33987: Add master ttk Frame to IDLE search dialogs (GH-22942) · python/cpython@5df6c99
@@ -33,6 +33,7 @@ def __init__(self, root, engine):
3333'''Initialize root, engine, and top attributes.
34343535 top (level widget): set in create_widgets() called from open().
36+ frame: container for all widgets in dialog.
3637 text (Text searched): set in open(), only used in subclasses().
3738 ent (ry): created in make_entry() called from create_entry().
3839 row (of grid): 0 in create_widgets(), +1 in make_entry/frame().
@@ -83,10 +84,14 @@ def create_widgets(self):
8384top.wm_title(self.title)
8485top.wm_iconname(self.icon)
8586self.top = top
87+self.frame = Frame(top, padding="5px")
88+self.frame.grid(sticky="nwes")
89+top.grid_columnconfigure(0, weight=100)
90+top.grid_rowconfigure(0, weight=100)
86918792self.row = 0
88-self.top.grid_columnconfigure(0, pad=2, weight=0)
89-self.top.grid_columnconfigure(1, pad=2, minsize=100, weight=100)
93+self.frame.grid_columnconfigure(0, pad=2, weight=0)
94+self.frame.grid_columnconfigure(1, pad=2, minsize=100, weight=100)
90959196self.create_entries() # row 0 (and maybe 1), cols 0, 1
9297self.create_option_buttons() # next row, cols 0, 1
@@ -99,9 +104,9 @@ def make_entry(self, label_text, var):
99104 entry - gridded labeled Entry for text entry.
100105 label - Label widget, returned for testing.
101106 '''
102-label = Label(self.top, text=label_text)
107+label = Label(self.frame, text=label_text)
103108label.grid(row=self.row, column=0, sticky="nw")
104-entry = Entry(self.top, textvariable=var, exportselection=0)
109+entry = Entry(self.frame, textvariable=var, exportselection=0)
105110entry.grid(row=self.row, column=1, sticky="nwe")
106111self.row = self.row + 1
107112return entry, label
@@ -117,11 +122,11 @@ def make_frame(self,labeltext=None):
117122 label - Label widget, returned for testing.
118123 '''
119124if labeltext:
120-label = Label(self.top, text=labeltext)
125+label = Label(self.frame, text=labeltext)
121126label.grid(row=self.row, column=0, sticky="nw")
122127else:
123128label = ''
124-frame = Frame(self.top)
129+frame = Frame(self.frame)
125130frame.grid(row=self.row, column=1, columnspan=1, sticky="nwe")
126131self.row = self.row + 1
127132return frame, label
@@ -171,7 +176,7 @@ def make_button(self, label, command, isdef=0):
171176172177def create_command_buttons(self):
173178"Place buttons in vertical command frame gridded on right."
174-f = self.buttonframe = Frame(self.top)
179+f = self.buttonframe = Frame(self.frame)
175180f.grid(row=0,column=2,padx=2,pady=2,ipadx=2,ipady=2)
176181177182b = self.make_button("Close", self.close)