libmacfs.tex 6.18 KB
Newer Older
1
\section{Built-in Module \sectcode{macfs}}
Jack Jansen's avatar
Jack Jansen committed
2 3
\bimodindex{macfs}

4 5
\renewcommand{\indexsubitem}{(in module macfs)}

Jack Jansen's avatar
Jack Jansen committed
6 7 8 9
This module provides access to macintosh FSSpec handling, the Alias
Manager, finder aliases and the Standard File package.

Whenever a function or method expects a \var{file} argument, this
10
argument can be one of three things:\ (1) a full or partial Macintosh
Jack Jansen's avatar
Jack Jansen committed
11
pathname, (2) an FSSpec object or (3) a 3-tuple \code{(wdRefNum,
12
parID, name)} as described in Inside Mac VI\@. A description of aliases
Jack Jansen's avatar
Jack Jansen committed
13 14 15 16 17 18 19 20
and the standard file package can also be found there.

\begin{funcdesc}{FSSpec}{file}
Create an FSSpec object for the specified file.
\end{funcdesc}

\begin{funcdesc}{RawFSSpec}{data}
Create an FSSpec object given the raw data for the C structure for the
21 22
FSSpec as a string.  This is mainly useful if you have obtained an
FSSpec structure over a network.
Jack Jansen's avatar
Jack Jansen committed
23 24 25
\end{funcdesc}

\begin{funcdesc}{RawAlias}{data}
26 27 28
Create an Alias object given the raw data for the C structure for the
alias as a string.  This is mainly useful if you have obtained an
FSSpec structure over a network.
Jack Jansen's avatar
Jack Jansen committed
29 30
\end{funcdesc}

31 32 33 34
\begin{funcdesc}{FInfo}{}
Create a zero-filled FInfo object.
\end{funcdesc}

Jack Jansen's avatar
Jack Jansen committed
35
\begin{funcdesc}{ResolveAliasFile}{file}
36 37
Resolve an alias file. Returns a 3-tuple \code{(\var{fsspec}, \var{isfolder},
\var{aliased})} where \var{fsspec} is the resulting FSSpec object,
Jack Jansen's avatar
Jack Jansen committed
38 39 40 41 42 43
\var{isfolder} is true if \var{fsspec} points to a folder and
\var{aliased} is true if the file was an alias in the first place
(otherwise the FSSpec object for the file itself is returned).
\end{funcdesc}

\begin{funcdesc}{StandardGetFile}{\optional{type\, ...}}
44
Present the user with a standard ``open input file''
Jack Jansen's avatar
Jack Jansen committed
45 46 47 48 49 50
dialog. Optionally, you can pass up to four 4-char file types to limit
the files the user can choose from. The function returns an FSSpec
object and a flag indicating that the user completed the dialog
without cancelling.
\end{funcdesc}

51 52 53 54
\begin{funcdesc}{PromptGetFile}{prompt\optional{\, type\, ...}}
Similar to \var{StandardGetFile} but allows you to specify a prompt.
\end{funcdesc}

Jack Jansen's avatar
Jack Jansen committed
55 56 57
\begin{funcdesc}{StandardPutFile}{prompt\, \optional{default}}
Present the user with a standard ``open output file''
dialog. \var{prompt} is the prompt string, and the optional
58
\var{default} argument initializes the output file name. The function
Jack Jansen's avatar
Jack Jansen committed
59 60 61 62
returns an FSSpec object and a flag indicating that the user completed
the dialog without cancelling.
\end{funcdesc}

63
\begin{funcdesc}{GetDirectory}{\optional{prompt}}
Jack Jansen's avatar
Jack Jansen committed
64
Present the user with a non-standard ``select a directory''
65 66
dialog. \var{prompt} is the prompt string, and the optional.
Return an FSSpec object and a success-indicator.
Jack Jansen's avatar
Jack Jansen committed
67 68
\end{funcdesc}

69 70
\begin{funcdesc}{FindFolder}{where\, which\, create}
Locates one of the ``special'' folders that MacOS knows about, such as
71 72 73 74 75 76 77
the trash or the Preferences folder. \var{Where} is the disk to
search, \var{which} is the 4-char string specifying which folder to
locate. Setting \var{create} causes the folder to be created if it
does not exist. Returns a \code{(vrefnum, dirid)} tuple.

The constants for \var{where} and \var{which} can be obtained from the
standard module \var{MACFS}.
78 79
\end{funcdesc}

Jack Jansen's avatar
Jack Jansen committed
80 81
\subsection{FSSpec objects}

82
\renewcommand{\indexsubitem}{(FSSpec object attribute)}
Jack Jansen's avatar
Jack Jansen committed
83 84 85 86 87
\begin{datadesc}{data}
The raw data from the FSSpec object, suitable for passing
to other applications, for instance.
\end{datadesc}

88
\renewcommand{\indexsubitem}{(FSSpec object method)}
Jack Jansen's avatar
Jack Jansen committed
89 90 91 92 93
\begin{funcdesc}{as_pathname}{}
Return the full pathname of the file described by the FSSpec object.
\end{funcdesc}

\begin{funcdesc}{as_tuple}{}
94
Return the \code{(\var{wdRefNum}, \var{parID}, \var{name})} tuple of the file described
Jack Jansen's avatar
Jack Jansen committed
95 96 97 98 99
by the FSSpec object.
\end{funcdesc}

\begin{funcdesc}{NewAlias}{\optional{file}}
Create an Alias object pointing to the file described by this
100
FSSpec. If the optional \var{file} parameter is present the alias
Jack Jansen's avatar
Jack Jansen committed
101 102 103 104 105 106 107 108 109 110 111 112 113 114 115
will be relative to that file, otherwise it will be absolute.
\end{funcdesc}

\begin{funcdesc}{NewAliasMinimal}{}
Create a minimal alias pointing to this file.
\end{funcdesc}

\begin{funcdesc}{GetCreatorType}{}
Return the 4-char creator and type of the file.
\end{funcdesc}

\begin{funcdesc}{SetCreatorType}{creator\, type}
Set the 4-char creator and type of the file.
\end{funcdesc}

116 117 118 119 120 121 122 123 124
\begin{funcdesc}{GetFInfo}{}
Return a FInfo object describing the finder info for the file.
\end{funcdesc}

\begin{funcdesc}{SetFInfo}{finfo}
Set the finder info for the file to the values specified in the
\var{finfo} object.
\end{funcdesc}

Jack Jansen's avatar
Jack Jansen committed
125 126
\subsection{alias objects}

127
\renewcommand{\indexsubitem}{(alias object attribute)}
Jack Jansen's avatar
Jack Jansen committed
128 129 130 131 132
\begin{datadesc}{data}
The raw data for the Alias record, suitable for storing in a resource
or transmitting to other programs.
\end{datadesc}

133
\renewcommand{\indexsubitem}{(alias object method)}
Jack Jansen's avatar
Jack Jansen committed
134 135
\begin{funcdesc}{Resolve}{\optional{file}}
Resolve the alias. If the alias was created as a relative alias you
136
should pass the file relative to which it is. Return the FSSpec for
Jack Jansen's avatar
Jack Jansen committed
137 138 139 140 141 142 143 144 145 146 147 148 149
the file pointed to and a flag indicating whether the alias object
itself was modified during the search process. 
\end{funcdesc}

\begin{funcdesc}{GetInfo}{num}
An interface to the C routine \code{GetAliasInfo()}.
\end{funcdesc}

\begin{funcdesc}{Update}{file\, \optional{file2}}
Update the alias to point to the \var{file} given. If \var{file2} is
present a relative alias will be created.
\end{funcdesc}

150
Note that it is currently not possible to directly manipulate a resource
Jack Jansen's avatar
Jack Jansen committed
151
as an alias object. Hence, after calling \var{Update} or after
152
\var{Resolve} indicates that the alias has changed the Python program
Jack Jansen's avatar
Jack Jansen committed
153 154 155 156
is responsible for getting the \var{data} from the alias object and
modifying the resource.


157 158 159 160 161 162 163 164 165 166 167 168 169 170 171
\subsection{FInfo objects}

See Inside Mac for a complete description of what the various fields
mean.

\renewcommand{\indexsubitem}{(FInfo object attribute)}
\begin{datadesc}{Creator}
The 4-char creator code of the file.
\end{datadesc}

\begin{datadesc}{Type}
The 4-char type code of the file.
\end{datadesc}

\begin{datadesc}{Flags}
172 173
The finder flags for the file as 16-bit integer. The bit values in
\var{Flags} are defined in standard module \var{MACFS}.
174 175 176 177 178 179 180 181 182
\end{datadesc}

\begin{datadesc}{Location}
A Point giving the position of the file's icon in its folder.
\end{datadesc}

\begin{datadesc}{Fldr}
The folder the file is in (as an integer).
\end{datadesc}