title
= 'Pmw.Dialog demonstration'
# Import Pmw from this directory tree.
sys
.path
[:0] = ['../../..']
def __init__(self
, parent
):
# Create two buttons to launch the dialog.
w
= Tkinter
.Button(parent
, text
= 'Show application modal dialog',
command
= self
.showAppModal
)
w
.pack(padx
= 8, pady
= 8)
w
= Tkinter
.Button(parent
, text
= 'Show global modal dialog',
command
= self
.showGlobalModal
)
w
.pack(padx
= 8, pady
= 8)
w
= Tkinter
.Button(parent
, text
= 'Show dialog with "no grab"',
command
= self
.showDialogNoGrab
)
w
.pack(padx
= 8, pady
= 8)
w
= Tkinter
.Button(parent
, text
=
'Show toplevel window which\n' +
'will not get a busy cursor',
command
= self
.showExcludedWindow
)
w
.pack(padx
= 8, pady
= 8)
self
.dialog
= Pmw
.Dialog(parent
,
buttons
= ('OK', 'Apply', 'Cancel', 'Help'),
# Add some contents to the dialog.
w
= Tkinter
.Label(self
.dialog
.interior(),
text
= 'Pmw Dialog\n(put your widgets here)',
w
.pack(expand
= 1, fill
= 'both', padx
= 4, pady
= 4)
# Create the window excluded from showbusycursor.
self
.excluded
= Pmw
.MessageDialog(parent
,
'This window will not get\n' +
'a busy cursor when modal dialogs\n' +
'are activated. In addition,\n' +
'you can still interact with\n' +
'this window when a "no grab"\n' +
'modal dialog is displayed.')
Pmw
.setbusycursorattributes(self
.excluded
.component('hull'),
self
.dialog
.activate(geometry
= 'centerscreenalways')
def showGlobalModal(self
):
self
.dialog
.activate(globalMode
= 1)
def showDialogNoGrab(self
):
self
.dialog
.activate(globalMode
= 'nograb')
def showExcludedWindow(self
):
def execute(self
, result
):
print 'You clicked on', result
if result
not in ('Apply', 'Help'):
self
.dialog
.deactivate(result
)
######################################################################
# Create demo in root window for testing.
if __name__
== '__main__':
exitButton
= Tkinter
.Button(root
, text
= 'Exit', command
= root
.destroy
)
exitButton
.pack(side
= 'bottom')