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

8384

top.wm_title(self.title)

8485

top.wm_iconname(self.icon)

8586

self.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)

86918792

self.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)

90959196

self.create_entries() # row 0 (and maybe 1), cols 0, 1

9297

self.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)

103108

label.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)

105110

entry.grid(row=self.row, column=1, sticky="nwe")

106111

self.row = self.row + 1

107112

return entry, label

@@ -117,11 +122,11 @@ def make_frame(self,labeltext=None):

117122

label - Label widget, returned for testing.

118123

'''

119124

if labeltext:

120-

label = Label(self.top, text=labeltext)

125+

label = Label(self.frame, text=labeltext)

121126

label.grid(row=self.row, column=0, sticky="nw")

122127

else:

123128

label = ''

124-

frame = Frame(self.top)

129+

frame = Frame(self.frame)

125130

frame.grid(row=self.row, column=1, columnspan=1, sticky="nwe")

126131

self.row = self.row + 1

127132

return frame, label

@@ -171,7 +176,7 @@ def make_button(self, label, command, isdef=0):

171176172177

def 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)

175180

f.grid(row=0,column=2,padx=2,pady=2,ipadx=2,ipady=2)

176181177182

b = self.make_button("Close", self.close)