This function is the means to successfully return a value from the current dialog. Hence, it might be called from an OK button so that pressing the button would cause the dialog to return successfully, whilst the Cancel button would call the counterpart function abort-dialog.
If there is no current dialog then
exit-dialog
does nothing and returns
nil
. If there is a current dialog then
exit-dialog
either returns non-
nil
or does a non-local exit. Therefore code that depends on
exit-dialog
returning must be written carefully - see the discussion under abort-dialog for details.
(capi:display-dialog
(capi:make-container
(make-instance 'capi:text-input-pane
:callback-type :data
:callback 'capi:exit-dialog)
:title "Test Dialog"))
There is another example in the file
examples/capi/dialogs/simple-dialog.lisp
.