Version 1 of Modal dialogs

Updated 2002-06-20 08:39:52

Arjen Markus I have combined the advice by Marty Backe and Erik Leunissen into a small receipe for creating modal dialog(ue)s.

I felt a receipe was needed as the proper implementation requires:

both of which are somewhat obscure commands.

I have tested the code on UNIX (Sun Solaris with CDE window manager, Tcl/Tk 8.3.1) and Windows NT, Tcl/Tk 8.3.4). I have not paid any attention to the layout of the two windows :-)


# # Create a button in the . window that displays a message box when pressed # button .hi -text Hi -command {tk_messageBox -message "Hi"} pack .hi # # Create a second window which acts as modal dialogue: # - make sure it is on top (first wait for the . window!) # - grab the display (locally) # - wait for the dialogue to disappear # # Note: the implementation is fairly rigorous. Leaving out # some of the wm commands may work on a particular platform, # but this way it works well on both UNIX and Windows) # Leaving out wm transient gives a different appearance # on Windows. # tkwait visibility .

toplevel .f button .f.b -text Close -command {destroy .f} pack .f.b grab .f wm transient .f . wm protocol .f WM_DELETE_WINDOW {grab release .f; destroy .f} raise .f tkwait window .f


Category Applications