choosefiledialog
PATH
,
OPTION
,
VALUE

The choosefiledialog statement displays a modal dialog allowing selection of files or folders.


Parameters

This statement has three parameters:

path – is a field or variable that will contain a carriage return delimited array of files (and/or folders) selected by the user. Files are returned as UNIX paths. If the user presses the Cancel button, this field or variable will be set to an empty string.

option – The name of an option that modifies the dialog’s appearance and/or operation. See below for descriptions of each available option. The option can be specified in either upper or lower case.

value – The option value.


Description

The choosefiledialog statement pauses a procedure and displays the standard system dialog for choosing files and/or folders. The user can then select a file or folder from the disk. Once the user has made a choice the procedure resumes and can process the users choice. (Note: The program can determine whether the user pressed the Ok or Cancel button by checking the info(“dialogtrigger”) function. In addition, if the Cancel button is pressed the path parameter will be set to "" (empty).)

This example allows the user to select any kind of file.

local fileChoice
choosefileDialog fileChoice

This example allows only PDF files to be selected:

local fileChoice
choosefileDialog fileChoice,".pdf"

Note: The case does not matter, either ".pdf" or ".PDF" can be used.

This example allows several different kinds of image files to be selected (note that the file types are NOT separated by commas):

local fileChoice
choosefileDialog fileChoice,".jpg.gif.png"

This example also allows image files to be selected, but starts with the user’s Pictures directory showing.

local fileChoice
choosefileDialog fileChoice,".jpg.gif.png","~/Pictures"

This example allows only Panorama database files to be selected:

local fileChoice
choosefileDialog fileChoice,".pandb"

Handling the Cancel button

If you want to perform a different action if the Cancel button is pressed, there are two techniques that can be used to check for this button. If the Cancel button is pressed, the variable containing the path and file will be empty:

local fileChoice
choosefileDialog fileChoice
if fileChoice=""
    return
endif
...
... do more stuff
...

The other option is to use the info(“dialogtrigger”) function:

local fileChoice
choosefileDialog fileChoice
if info("dialogtrigger")="Cancel"
    return
endif
...
... do more stuff
...

These examples simply stop if the Cancel button is pressed, but you could add additional code to display a message, load a default file, or any other action you want.

Dialog Options

The appearance and operation of the choose file dialog can be modified by adding one or more pairs of option/value parameters to the choosefiledialog statement, like this:

choosefiledialog path,option1,value1,option2,value2,option3,value3,option4,value4

Each of the available options is described below.

FileTypes

This option specifies one or more types of files that can be selected with the dialog. Any file that is not one of the types in the list will be dim, and cannot be selected. In this example, only filenames ending with .html or .css can be selected.

choosefiledialog fileChoice,"FileTypes",".html.css"

If the FileTypes option is ommitted, any kind of file can be selected.

Legacy Support for Type/Creator Codes – The filetypes parameter also supports the older, legacy, 4 character file type codes (see typecreatorcode() in addition to file extensions. Here is an example that allows JPEG, GIF or PNG image files to be selected. If you use file types then the filetypes parameter must contain a multiple of 4 characters (4, 8, 12, etc.) and must not start with a period.

choosefiledialog fileChoice,"FileTypes","JPEGGIFfPNGf"

Note: Current versions of Panorama do not actually check the files OS 9 type and creator code (most files in OS X do not have these codes any more). Instead Panorama uses the file’s extension to synthesize the type and creator codes. The current version of Panorama requires that all files it works with have an extension.

Tip: You can leave off the option name for the filetype parameter, like this:

choosefiledialog fileChoice,".html.css.xml.json"
choosefiledialog fileChoice,"JPEGGIFfPNGf"

The choosefiledialog statement automatically recognizes that this is a filetype list, either because it starts with a period, or because it is a multiple of 4 characters.

InitialPath

This option specifies the folder that appears when the dialog first opens. See Files and Folders to learn more about setting up paths. This example initially opens the dialog to the Pictures folder.

local fileChoice
choosefiledialog fileChoice,"InitialPath","~/Pictures"

This example initially opens the dialog to the folder containing the current database.

local fileChoice
choosefiledialog fileChoice,"InitialPath",dbfolder()

If the InitialPath option is omitted, the dialog will open to the last folder accessed.

Tip: As long as your path contains one or more / or : characters, you can leave off the option name and just include the path, like this:

choosefiledialog fileChoice,"~/Pictures"

The choosefiledialog statement automatically recognizes that this is a path because of the / or : characters. Tip within Tip: Functions like folder(, dbfolder(, and other folder related functions return a path with one or more / characters in it, so they will work also, like this:

choosefiledialog fileChoice,dbfolder()
Multiple

This option enables multiple files to be selected by the dialog. If the user chooses multiple files, they will be returned as a carriage return delimited array (in other words, each filename will be on a separate line).

choosefiledialog fileChoice,"filetypes",".jpg.gif.png","Multiple",true()

If this option is omitted, only a single file may be selected.

Folders

This option can be used to enable the selection of folders (normally folders cannot be selected). This example allows the user to select folders or image files.

choosefiledialog fileChoice,"filetypes",".jpg.png.tif.gif","folders",true()

Boolean values can also be specified textually, i.e. "true" in addition to true() (see True/False Formulas).

Files

This option can be used to disable the selection of files. This example displays a dialog that allows the user to select a folder, but does not allow the selection of any file.

choosefiledialog fileChoice,"folders",true(),"files",false()

If this parameter is omitted, files can be selected.

Title

This option specifies the title of the choose file dialog. The title appears at the very top of the dialog, in the drag bar. (Note: When running recent versions of macOS there is no drag bar, so the title is not displayed.)

choosefiledialog fileChoice,"FileTypes",".html","Title","Choose Web Page"

If this option is omitted the default name is simply Open.

Button

This option specifies the name of the Open button. This button appears at the lower right corner of the dialog. Within reason, the button dimensions will expand to accommodate the name you specify.

choosefiledialog fileChoice,"FileTypes",".html","Button","Choose Web Page"

If this option is omitted the default button name is simply Open.

ShowHidden

This option allows the dialog to display files that are normally hidden, for example files that start with a period.

choosefiledialog fileChoice,"FileTypes",".html","ShowHidden",true()

If this option is omitted, hidden files will not be displayed.

OpenPackages

This option allows the dialog to open package files as if they were regular folders. Use this option if you want to give the user the option to select a file inside a package (only very advanced users, like developers, would ever need this option).

choosefiledialog fileChoice,"FileTypes",".html","OpenPackages",true()

If this option is omitted, package files are treated like regular files.


See Also


History

VersionStatusNotes
10.0NewNew in this release.