CustomPutFile
CustomPutFile Use for more control over the Save dialog box
#include <StandardFile.h> Standard File Package
void CustomPutFile(prompt, defaultName, reply, dlgID, where,
dlgHook, filterProc , activeList, activateProc,
yourDataPtr );
ConstStr255Param prompt ; the prompt message
ConstStr255Param defaultName ; initial file name
StandardFileReply *reply ; the reply record
short dlgID ; resource ID of a customized dialog
template
Point where ; coordinates for top left of dialog window
DlgHookYDProcPtr dlgHook ; NIL= standard; else=addr of custom routine
ModalFilterYDProcPtr filterProc; filters events; NIL= standard filtering
short *activeList ; list of all items in the dialog box that can
be activated
ActivateYDProcPtr activateProc ; address of activation procedure or NIL
void *yourDataPtr:; optional data supplied by your application.
Use the CustomPutFile procedure when your application requires more control
over the Save dialog box.
prompt specifies the prompt message to be displayed over the text field.
defaultName contains the initial name of the file, if any.
reply points to the reply record, which StandardPutFile fills in before
returning.
dlgID is the resource ID of a customized dialog template. To use the
standard template, set this parameter to 0.
where specifies the upper-left corner of the dialog box in global
coordinates. If you specify the point (-1,-1), CustomPutFile
automatically centers the dialog box on the screen.
dlgHook points to your dialog hook function, which handles item hits received
from the Dialog Manager. Specify a value of NIL if you have not
added any items to the dialog box and want the standard items handled
in the standard ways. See Callback Routines for a description of
the dialog hook function, which uses this syntax:
pascal short MyDlgHook ( short item, DialogPtr theDialog, void
*myDataPtr);
filterProc points to your modal-dialog filter function, which determines how
the ModalDialog procedure filters events when called by the
CustomPutFile procedure. Specify a value of NIL if you are not
supplying your own function. See Callback Routines for a
description of the modal-dialog filter function, which uses this
syntax:
pascalBoolean MyModalFilter(DialogPtr theDialog, EventRecord
* theEvent, short itemHit, void *myDataPtr);
activeList points to a list of all items in the dialog box that can be
activated-that is, can be the target of keyboard input. If you supply
an activeList parameter of NIL, CustomPutFile uses the default
targets (the filename field and the list of files and folders that can be
opened). If you have added any fields that can accept keyboard input,
you must modify the list. The list is stored as an array of 16-bit
integers. The first integer is the number of items in the list. The
remaining integers are the item numbers of all possible keyboard
targets, in the order that they are activated by the Tab key.
activateProc points to your activation procedure, which controls the
high-lighting of dialog items that are defined by your application and
that can receive keyboard input. See Callback Routines for a
description of the activation procedure, which uses this syntax:
pascal void MyActivateProc (DialogPtr theDialog, short itemNo,
Boolean activating, void *myDataPtr);
yourDataPtr points to optional data supplied by your application. When
CustomPutFile calls any of your callback routines, it pushes this
parameter on the stack, making the data available to your callback
routines. If you are not supplying any data of your own, you can
specify a value of NIL.
Returns: none

Notes: CustomPutFile is an alternative to StandardPutFile when you want to
display a customized Save dialog box or handle the default dialog box in a
customized way.