display-dialog interface &key screen focus modal owner x y position-relative-to continuation callback-error-handler => result , okp
A CAPI interface.
A screen.
A pane of interface .
t
, :dismiss-on-input
or nil
.
A pane.
Real numbers representing coordinates, or keywords or lists specifying an adjusted position.
A function or nil
.
The function display-dialog
displays the CAPI interface
interface
as a dialog box.
screen is the screen for the dialog to be displayed on.
focus should be the pane within the interface that should be given the focus initially. If a focus is not supplied, then it lets the window system decide.
A true value of
modal
indicates that the dialog takes over all input to the application. Additionally, if
modal
is :dismiss-on-input
then any user gesture (a button or key press) causes the dialog to disappear. :dismiss-on-input
works on platforms other than Motif. The default value of
modal
is t
.
owner specifies an owner window for the dialog. See Dialogs: Prompting for Input for details.
If
x
and
y
are numbers they specify the coordinates of the dialog. Alternatively
x
and
y
can be keywords like :left
and :top
, or lists like (:left 100)
, (:bottom 50)
and so on.. These values cause the dialog to be positioned relative to its owner in the same way as the
adjust
argument to pane-adjusted-position. The default location is at the center of the dialog's owner.
position-relative-to
has a default value :owner
, meaning that
x
and
y
are relative to dialog's owner. The value nil
means that
x
and
y
are relative to the screen.
If
continuation
is non-nil, then it must be a function with a lambda list that accepts two arguments. The
continuation
function is called with the values that would normally be returned by display-dialog
. On Cocoa, passing
continuation
causes the dialog to be made as a window-modal sheet and display-dialog
returns immediately, leaving the dialog on the screen. The with-dialog-results macro provides a convenient way to create a
continuation
function.
The values returned depend on how the dialog is dismissed. Typically a user gesture will trigger a call to abort-dialog, causing the values nil
, nil
to be returned or to exit-dialog causing the values
result
, t
to be returned, where
result
is the argument to exit-dialog. If
continuation
is non-nil, then the returned values are always :continuation
, nil
.
The CAPI also provides popup-confirmer which gives you the standard OK and Cancel button functionality.
callback-error-handler allows error handling in callbacks which is uniform across platforms, as described for popup-confirmer.
(capi:display-dialog
(capi:make-container
(make-instance 'capi:push-button-panel
:items '("OK" "Cancel")
:callback-type :data
:callbacks '(capi:exit-dialog
capi:abort-dialog))
:title "Empty Dialog"))
(example-edit-file "capi/dialogs/")
abort-dialog
display
display-replacable-dialog
exit-dialog
interface
popup-confirmer
with-dialog-results
*update-screen-interfaces-hooks*
Dialogs: Prompting for Input
CAPI User Guide and Reference Manual (Windows version) - 3 Aug 2017