NAME

MacPerl - Built-in Macintosh specific routines.

SYNOPSIS

$phone = MacPerl::Ask("Enter your phone number:");
MacPerl::Answer("Nunc et in hora mortis nostrae", "Amen");
$color = MacPerl::Pick("What's your favorite color baby ?", "Red", "Green", "Gold");

MacPerl::SetFileInfo("MPS ", "TEXT", yin, yang);
MacPerl::GetFileInfo(yin);

MacPerl::Quit(kMacPerlAlwaysQuit);

FUNCTIONS

MacPerl::Answer(PROMPT)
MacPerl::Answer(PROMPT,BUTTON1)
MacPerl::Answer(PROMPT,BUTTON1,BUTTON2)
MacPerl::Answer(PROMPT,BUTTON1,BUTTON2,BUTTON3)

Presents to the user a dialog with 1, 2, or 3 buttons.

Examples:

MacPerl::Answer("Nunc et in hora mortis nostrae", "Amen");

always returns 0.

MacPerl::Answer("I refuse");

is equivalent to MacPerl'Answer("I refuse", "OK");

MacPerl::Answer("Delete hard disk ?", "OK", "Cancel");

returns 1 for OK, 0 for Cancel

MacPerl::Answer("Overwrite existig file", "Overwrite", "Skip", "Cancel");

returns 2 for Overwrite, 1 for Skip, 0 for Cancel

MacPerl::Ask(PROMPT, DEFAULT)
MacPerl::Ask(PROMPT)

Asks the user for a string. A default value may be given. Returns undef if the dialog is cancelled.

Example:

$phone = MacPerl::Ask("Enter your phone number:");
$name  = MacPerl::Ask("Enter your first name", "Bruce");

Useful for Australian database applications

MacPerl::Pick(PROMPT, VALUES)

Asks the user to pick a choice from a list. VALUES is a list of choices. Returns undef if the dialog is cancelled.

Examples:

$color = MacPerl::Pick("What's your favorite color baby ?", "Red", "Green", "Gold");
MacPerl::SetFileInfo(CREATOR,TYPE,FILE...)

Changes the file types and creators of the file(s).

Examples:

MacPerl::SetFileInfo("MPS ", "TEXT", yin, yang);

Turn yin and yang into MPW text files

MacPerl::GetFileInfo(FILE)

In scalar context, returns the file type. In array context, returns (creator,type).

Examples:

MacPerl::GetFileInfo(yin);

Returns "TEXT" or ("MPS ", "TEXT").

MacPerl::DoAppleScript(SCRIPT)

Execute an AppleScript script. Returns the text of the script result. Script error strings are returned in $@.

Example:

my $text = MacPerl::DoAppleScript(<<END_SCRIPT) or die $@;
tell application "BBEdit"
	make new Window
	copy "Inserting text the hard way." to character 1 of front Window
	get (characters 1 through 9 of front Window) as text
end tell
END_SCRIPT

Note: calling DoAppleScript to tell MacPerl to do something via AppleScript may yield unpredictable results, especially when waiting on MacPerl to reply, such as when stringing multiple events together, or expecting data to be returned. Try wrapping the "tell" block in "ignoring application responses" / "end ignoring" if necessary.

MacPerl::Reply(ANSWER)

Reply to current DoScript request. Useful if you are calling Perl scripts from other applications.

MacPerl::Quit(LEVEL)

Mac OS only.

If LEVEL is 0, don't quit after ending the script. If 1, quit if running under a runtime version, if 2, always quit. If LEVEL is 3, quit if this was the first script to be run since starting MacPerl.

MacPerl::LoadExternals(LIBFILE)

Mac OS only.

Load XCMD and XFCN extensions contained in file LIBFILE, which is searched along the same path as it would be for a require. The extensions are made accessible in the current package, unless they containing an explicit package name.

MacPerl::FAccess(FILE, CMD, ARGS)

Mac OS only.

When called from the tool, manipulate various information of files. To get the command constants, it's convenient to require "FAccess.ph".

$TAB = MacPerl::FAccess(FILE, F_GTABINFO)
MacPerl::FAccess(FILE, F_STABINFO, TAB)

Manipulate tabulator setting (in spaces per tab).

($FONTNAME, $FONTSIZE) = MacPerl::FAccess(FILE, F_GFONTINFO)
$FONTNUM = MacPerl::FAccess(FILE, F_GFONTINFO)
MacPerl::FAccess(FILE, F_SFONTINFO, FONT [, SIZE])

Manipulate font and size information. Both font names and font numbers are accepted for F_SFONTINFO; F_GFONTINFO returns a font name in an array context, a font number in a scalar context.

($STARTSEL, $ENDSEL, $DISPLAYTOP) = MacPerl::FAccess(FILE, F_GSELINFO)
$STARTSEL = MacPerl::FAccess(FILE, F_GSELINFO)
MacPerl::FAccess(FILE, F_SSELINFO, $STARTSEL, $ENDSEL [, $DISPLAYTOP])

Manipulate the MPW selection of a file.

($LEFT, $TOP, $RIGHT, $BOTTOM) = MacPerl::FAccess(FILE, F_GWININFO) =item $TOP = MacPerl::FAccess(FILE, F_GWININFO) =item MacPerl::FAccess(FILE, F_SWININFO, LEFT, TOP [, RIGHT, BOTTOM])

Manipulate the window position.

MacPerl::MakeFSSpec(PATH)

This command encodes a path name into an encoding (volume #, directory #, File name) which is guaranteed to be unique for every file. Don't store this encoding between runs of MacPerl!

MacPerl::MakePath(FSSPEC)

The inverse of MacPerl::MakeFSSpec(): turn an encoding into a path name.

MacPerl::Volumes()

In scalar context, return the FSSPEC of the startup volume. In list context, return FSSPECs of all volumes.

SEE ALSO

macperl