title
= 'Modal dialog nesting demonstration'
# Import Pmw from this directory tree.
sys
.path
[:0] = ['../../..']
def __init__(self
, parent
):
# Create button to launch the dialog.
w
= Tkinter
.Button(parent
, text
= 'Show first dialog',
command
= self
.showFirstDialog
)
w
.pack(padx
= 8, pady
= 8)
self
.dialog1
= Pmw
.MessageDialog(parent
,
message_text
= 'This is the first modal dialog.\n' +
'You can see how dialogs nest by\n' +
'clicking on the "Next" button.',
buttons
= ('Next', 'Cancel'),
command
= self
.next_dialog
)
self
.dialog2
= Pmw
.Dialog(self
.dialog1
.interior(),
deactivatecommand
= self
.cancelTimer
,
defaultbutton
= 'Cancel')
w
= Tkinter
.Label(self
.dialog2
.interior(),
text
= 'This is the second modal dialog.\n' +
'It will automatically disappear shortly')
w
.pack(padx
= 10, pady
= 10)
def showFirstDialog(self
):
if self
.timerId
is not None:
self
.dialog2
.after_cancel(self
.timerId
)
def deactivateSecond(self
):
self
.dialog2
.deactivate()
def next_dialog(self
, result
):
self
.dialog1
.deactivate()
self
.timerId
= self
.dialog2
.after(3000, self
.deactivateSecond
)
######################################################################
# Create demo in root window for testing.
if __name__
== '__main__':
exitButton
= Tkinter
.Button(root
, text
= 'Exit', command
= root
.destroy
)
exitButton
.pack(side
= 'bottom')