




prompt-for-file 
message
 &key 
pathname
 
ok-check
 
filter
 
filters
                
if-exists
 
if-does-not-exist
 
operation
 
owner
                
pane-args
 
popup-args
 
continuation
                => 
filename
, 
successp
, 
filter-name
A string or 
nil
.
A pathname designator or 
nil
.
A function or 
nil
.
A string or 
nil
.
A list.
One of 
:ok
 or 
:prompt
.
One of 
:ok
, 
:prompt
 or 
:error
.
One of 
:open
 or 
:save
.
An owner window.
A function or 
nil
.
The function 
prompt-for-file
 prompts the user for a file using a dialog box.
pathname
, if non-
nil
, is a pathname designator providing a default filename for the dialog.
ok-check
, if non-
nil
, should be a function which takes a pathname designator argument and returns a true value if the pathname is valid.
filter
 specifies the initial filter expression. The default value is
 "*.*"
. An example filter expression with multiple filters is "*.LISP;*.LSP".
filter is used on all platforms. However on Motif, if filter contains multiple file types, only the first of these is used.
filters
 is a plist of filter-names and filter expressions. If the filter argument is not one of the expressions in filters, an extra filter called 
"Files"
 is added for this expression.  The default filters plist is:
("Lisp Source Files" "*.LISP;*.LSP"
"Lisp Fasls" "*.FSL"
"Text Documents" "*.DOC;*.TXT"
"Image Files" "*.BMP;*.DIB;*.ICO;*.CUR"
"All Files" "*.*")
When 
if-exists
 is 
:ok
, an existing file can be returned.  Otherwise the user is prompted about whether the file can be overwritten.  The default for 
if-exists
 is 
:ok
 when 
operation
 is 
:open
 and 
:prompt
 when operation is 
:save
.
When 
if-does-not-exist
 is 
:ok
, a non-existent file can be chosen.  When it is 
:prompt
, the user is prompted if a non-existent file is chosen.  When it is 
:error
, the user cannot choose a non-existent file.  The default for 
if-does-not-exist 
is 
:prompt
 if 
operation
 is 
:open
 and 
:ok
 if 
operation
 is 
:save
. 
operation
 chooses the style of dialog used, in LispWorks for Windows only. The default value is 
:open
.
owner
, if non-
nil
, specifies an owner window for the dialog. See the "Prompting for Input" chapter in the 
LispWorks CAPI User Guide
 for details.
If 
continuation
 is non-
nil
, then it must be a function with a lambda list that accepts three arguments. The 
continuation
 function is called with the values that would normally be returned by 
prompt-for-file
. On Cocoa, passing 
continuation
 causes the dialog to be made as a window-modal sheet and 
prompt-for-file
 returns immediately, leaving the dialog on the screen. The with-dialog-results macro provides a convenient way to create a 
continuation
 function.
On Motif, the prompt itself is created by passing an appropriate pane to popup-confirmer. Arguments can be passed to the 
make-instance
 of the pane and the call to popup-confirmer using 
pane-args
 and 
popup-args
 respectively. Currently, the pane used to create the file prompter is internal to the CAPI. 
pane-args
 and 
popup-args
 are ignored on Windows.
filename
 is the full pathname of the file selected, or 
nil
 if the dialog was cancelled. 
successp
 is a flag which is 
nil
 if the dialog was cancelled, and 
t
 otherwise. 
On Windows 
prompt-for-file
 returns a third value: 
filter-name
 is the name of the filter that was selected in the dialog.
(capi:prompt-for-file "Enter a filename:")
(capi:prompt-for-file "Enter a filename:"
:pathname "/usr/bin/cal")
(capi:prompt-for-file "Enter a filename:"
:ok-check 'probe-file)