MCPcopy Create free account
hub / github.com/RustPython/RustPython / SimpleDialog

Class SimpleDialog

Lib/tkinter/simpledialog.py:31–86  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

29
30
31class SimpleDialog:
32
33 def __init__(self, master,
34 text='', buttons=[], default=None, cancel=None,
35 title=None, class_=None):
36 if class_:
37 self.root = Toplevel(master, class_=class_)
38 else:
39 self.root = Toplevel(master)
40 if title:
41 self.root.title(title)
42 self.root.iconname(title)
43
44 _setup_dialog(self.root)
45
46 self.message = Message(self.root, text=text, aspect=400)
47 self.message.pack(expand=1, fill=BOTH)
48 self.frame = Frame(self.root)
49 self.frame.pack()
50 self.num = default
51 self.cancel = cancel
52 self.default = default
53 self.root.bind('<Return>', self.return_event)
54 for num in range(len(buttons)):
55 s = buttons[num]
56 b = Button(self.frame, text=s,
57 command=(lambda self=self, num=num: self.done(num)))
58 if num == default:
59 b.config(relief=RIDGE, borderwidth=8)
60 b.pack(side=LEFT, fill=BOTH, expand=1)
61 self.root.protocol('WM_DELETE_WINDOW', self.wm_delete_window)
62 self.root.transient(master)
63 _place_window(self.root, master)
64
65 def go(self):
66 self.root.wait_visibility()
67 self.root.grab_set()
68 self.root.mainloop()
69 self.root.destroy()
70 return self.num
71
72 def return_event(self, event):
73 if self.default is None:
74 self.root.bell()
75 else:
76 self.done(self.default)
77
78 def wm_delete_window(self):
79 if self.cancel is None:
80 self.root.bell()
81 else:
82 self.done(self.cancel)
83
84 def done(self, num):
85 self.num = num
86 self.root.quit()
87
88

Callers 1

doitFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected