Version 11 of tk_dialog

Updated 2005-05-17 09:03:49

Create modal dialog and wait for response.


http://www.purl.org/tcl/home/man/tcl8.4/TkCmd/dialog.htm

See also: dialog.

The function can be found in the installed tcl/tk file dialog.tcl .


SYNOPSIS

tk_dialog window title text bitmap default string string ...

DESCRIPTION

This procedure is part of the Tk script library. Its arguments describe a dialog box:

window
Name of top-level window to use for dialog. Any existing window by this name is destroyed.
title
Text to appear in the window manager's title bar for the dialog.
text
Message to appear in the top portion of the dialog box.
bitmap
If non-empty, specifies a bitmap to display in the top portion of the dialog, to the left of the text. If this is an empty string then no bitmap is displayed in the dialog.
default
If this is an integer greater than or equal to zero, then it gives the index of the button that is to be the default button for the dialog (0 for the leftmost button, and so on). If less than zero or an empty string then there won't be any default button.
string
There will be one button for each of these arguments. Each string specifies text to display in a button, in order from left to right.

After creating a dialog box, tk_dialog waits for the user to select one of the buttons either by clicking on the button with the mouse or by typing return to invoke the default button (if any). Then it returns the index of the selected button: 0 for the leftmost button, 1 for the button next to it, and so on. If the dialog's window is destroyed before the user selects one of the buttons, then -1 is returned.

While waiting for the user to respond, tk_dialog sets a local grab. This prevents the user from interacting with the application in any way except to invoke the dialog box.


Where you have a platform that should look (more or less) native on several platforms, use tk_messageBox in preference to this if possible and reasonable.


RS: You can set the font of all dialogs explicitly (tested on W95) with something like

 option add *Dialog.msg.font {Arial 12}

LES on 07 May 2005: when this dialog pops up, we can tab through all the buttons and change which button is highlighted. Pressing space triggers the currently highlighted button's action, but pressing Enter/Return always triggers the default button, even if is not the one highlighted. Bug or feature?

MGS [2005/05/17] I believe this is a feature. The default button is defined when the dialog is created - I believe this should not change. The active button can be invoked using the spacebar.


SYStems Since the word modal bedazzled me I searched the net and found [L1 ] and I quote

A dialog can be either modeless (the default) or modal. A modal dialog is one which blocks input to all other toplevel windows in the app context, except for any windows created with the dialog as their owner

Of course the word defualt applies to Java, not Tk


See also:


Category Dialog - Category Command - Tk syntax help - Arts and Crafts of Tcl-Tk Programming -