Livecode

FILE/FOLDER/PICTURE CHOOSER WIDGETS FOR MACINTOSH

Here is a pair of standalone choosers (one for
pictures and another for ordinary files) that you
can incorporate in your own programs. An
example program for calling the widgets is
provided, written in LiveCode.
However, your programs do not need to be
written in LiveCode in order to use the widgets.

This version of the widgets should run on
most Mac platforms. Compilations have been
provided for MAC OS X (Universal), MAC OS X
(Power PC Only) and MAC OS X (Intel Only).

The choosers can be used for file selection
("Open", or "Save As" functions with or without
a suggested file name), or for choosing
folders only.

PICTURE FILE/FOLDER CHOOSER

SIMPLE FILE/FOLDER CHOOSER

And here is the example program provided with the demo pack that you can download, demonstrating
not only how to call the chooser widgets and retrieve the information they provide, but also how to
determine their size, position, appearance and exact function:

As you can see, the widgets are each controlled by 2 INI files, one for any file filters required (shown on the right) and another for all other tailoring (shown on the left).
If you move the mouse over the leftmost INI parameters, a red screen will appear that gives you a full explanation and examples of the parameter under the mouse.
You can change these parameters individually, and then call the widgets to observe their visual and functional effects. Or for a more general demo you can click on
the 4 buttons at the bottom to see pre-prepared examples of the main widget functions: opening a file or a folder, or doing a "save as" with or without a suggested
file name.

It is fairly deducible from the demo, but it is worth further clarifying here the exact functions of parameter 16 (the last one) of the "_file_chooser.ini" and
"_picture_chooser.ini" files. If you put "folder" in line 16, the chooser will return a folder name and not a file name (even if you actually select a file). If you put
"folder/" in line 16, the same thing will happen, but the folder name returned will have a slash as the last character. If you leave line 16 empty, the widget
will function as a file chooser, and the path+file name returned will correspond to whatever path and file the operator has selected and highlighted in the leftmost
(for the folder) and rightmost (for the file) lists of the widget. The appearance of the widgets will be exactly as shown above. However, if you put anything else into
line16 of the INI file, it will be treated as a suggested file name, which can be either partial (e.g. *.txt) or complete (e.g. newfile.txt). And a little box showing the
suggested file name will appear as illustrated here:

Of course, if the operator just clicks on the OK button in the first (partially-suggested file name) example above, the widget will beep and refuse to close until the
operator has typed or chosen a legal file name.

If you want the operator to type a file name completely without really suggesting anything, then put "*.*" or other illegal file name into line 16 of the INI file:

All in all, apart from the fact that they are greatly more tailorable, these widgets behave much like the answer dialogues provided by MAC OS X. However, there is
one aspect which is a little different and perhaps more attractive. If you want to supply a message to the operator before he/she makes a folder/file choice, just
put the message in a text file (with any file name) and include it in the widget folder with its 2 INI files. It can have any number of lines, which will be
centralised when they are displayed. Put the name of this file into line 2 of the chooser's INI. Then, in line 3, provide a parameter such as "2,1". In this
example, the "2" determines that the message will be shown for 2 seconds, and the "1" determines that the following visual effect (dissolve) to reveal the widget
will last for 1 second. The following 3 pictures illustrate this sequence:

Please note that for the purposes of the demo only, the file name of the message is given as "_picture_chooser_prompt_file.txt" and is unalterable. This is
not the case when you employ the widgets in your own application.

MAKING YOUR OWN STANDALONES

If you download the demo pack offered (see the icon at the top of the page), then apart from the standalone programs required, you will also receive a copy of the
projects. And if you wish to create new standalone widgets from the projects yourself, there are one or two things to be remembered. When a widget project
is loaded into the IDE, the computer's drives are detected and displayed. Of course, if you create a standalone at this point, and you wish to distribute it for use on
other computers, you will be permanently including the drive icons from your own computer. To avoid this, just DELETE EVERY DRIVE ICON EXCEPT THE
FIRST (i.e. the "Apple" icon denoting the Macintosh HD).

Also, to keep the widgets on the top layer while in use, they are defined as SYSTEM WINDOWS (see the "float above everything" option in the stack's properties).
If you are making alterations to the coding and testing the widgets, it is convenient to turn this option off, but before you make a standalone, it is advisable to turn
it on again. The RunRev IDE is NOT very convenient when you are developing a project with system windows because things get covered up and sometimes this
prevents access to dialogues that require a response and you can only get out of this snooker with an Alt-Ctrl-Esc. For the chooser widgets (a simpler case),
what I usually do is to save my project with the float turned on, and then I turn it off before making the standalone, without re-saving as invited.

Finally, please note that if you define the simple widget as a folder chooser (with either "folder" of "folder/" in the last line of its INI file), the pane for choosing
a file name will not appear.

However, if you do the same thing for a picture widget, the right-hand file pane WILL appear so that the operator can browse the file contents of the folders
he/she is considering, including the use of the preview image at the bottom, but what will be returned by the widget is a FOLDER, not a file:

"README" FILE

Some aspects of chooser widget usage have not been discussed on this page, for example the exact format required for the
filter files (_file_chooser_filters.ini  AND  _picture_chooser_filters.ini). For further information, please consult the
"readme" file that you will find accompanying the Demo Pack.

When the widgets open, they detect the HD
and media devices, such as pendrives,
external HDs, DVD drives, etc., attached to
the computer. Each device is given an
icon at the top with the first letter of its name
(in lower-case). So for example the "k" icon in
the image on the left stands for "Kingston" (a
pendrive).

If you move the mouse over these drive icons,
their full name will be shown in the form of a
"tooltip" which appears near the cursor.