from GUI import Window, ModalDialog, Label, Button, \ TextField, application from GUI.StdButtons import DefaultButton, CancelButton from testing import say def modal_dialog(): #global dlog ### dlog = ModalDialog(title = "Spanish Inquisition", size = (200, 140)) dlog.place(Label(text = "Surprise!!!"), left = 20, top = 20) field = TextField() dlog.place(field, left = 20, top = 60, right = -20) field.become_target() dlog.default_button = DefaultButton() dlog.cancel_button = CancelButton() dlog.place(dlog.default_button, right = -20, bottom = -20) dlog.place(dlog.cancel_button, left = 20, bottom = -20) dlog.center() result = dlog.present() say("Result =", result) dlog.destroy() win = Window(title = "Modal Dialogs", size = (200, 60)) dialog_button = Button(title = "Give Me A Dialog", action = modal_dialog) win.place(dialog_button, left = 20, top = 20) win.show() instructions = """ Clicking the "Give Me A Dialog" button should pop up a modal dialog centered on the screen, containing a label, a text field, an OK button and a Cancel button. While the dialog is up: * Interaction with the main window should be prevented. * Edit menu commands should be enabled as appropriate for the text field; other menu commands should be disabled. Clicking the OK button or pressing Return or Enter should dismiss the dialog and report "Result = True". Clicking the Cancel button or pressing Escape should dismiss the dialog and report "Result = False". On platforms without an application-wide menu bar, there should be no menu bar in the window. However, the keyboard equivalents of the edit menu commands should still work. """ say(instructions) application().run()