libmacic.tex 5.42 KB
Newer Older
Fred Drake's avatar
Fred Drake committed
1
\section{\module{ic} ---
2
         Access to Internet Config}
3

4 5
\declaremodule{builtin}{ic}
  \platform{Mac}
Fred Drake's avatar
Fred Drake committed
6
\modulesynopsis{Access to Internet Config.}
7

8

9 10
This module provides access to Macintosh Internet
Config\index{Internet Config} package,
11 12 13 14
which stores preferences for Internet programs such as mail address,
default homepage, etc. Also, Internet Config contains an elaborate set
of mappings from Macintosh creator/type codes to foreign filename
extensions plus information on how to transfer files (binary, ascii,
15
etc.). Since MacOS 9, this module is a control panel named Internet.
16

Fred Drake's avatar
Fred Drake committed
17 18 19
There is a low-level companion module
\module{icglue}\refbimodindex{icglue} which provides the basic
Internet Config access functionality.  This low-level module is not
20
documented, but the docstrings of the routines document the parameters
Fred Drake's avatar
Fred Drake committed
21 22
and the routine names are the same as for the Pascal or \C{} API to
Internet Config, so the standard IC programmers' documentation can be
23 24
used if this module is needed.

Fred Drake's avatar
Fred Drake committed
25 26 27
The \module{ic} module defines the \exception{error} exception and
symbolic names for all error codes Internet Config can produce; see
the source for details.
28

Fred Drake's avatar
Fred Drake committed
29 30 31
\begin{excdesc}{error}
Exception raised on errors in the \module{ic} module.
\end{excdesc}
32

Fred Drake's avatar
Fred Drake committed
33

34
The \module{ic} module defines the following class and function:
Fred Drake's avatar
Fred Drake committed
35

36
\begin{classdesc}{IC}{\optional{signature\optional{, ic}}}
Fred Drake's avatar
Fred Drake committed
37
Create an internet config object. The signature is a 4-character creator
38 39
code of the current application (default \code{'Pyth'}) which may
influence some of ICs settings. The optional \var{ic} argument is a
Fred Drake's avatar
Fred Drake committed
40 41 42
low-level \code{icglue.icinstance} created beforehand, this may be
useful if you want to get preferences from a different config file,
etc.
43
\end{classdesc}
44

Fred Drake's avatar
Fred Drake committed
45 46 47 48 49
\begin{funcdesc}{launchurl}{url\optional{, hint}}
\funcline{parseurl}{data\optional{, start\optional{, end\optional{, hint}}}}
\funcline{mapfile}{file}
\funcline{maptypecreator}{type, creator\optional{, filename}}
\funcline{settypecreator}{file}
50 51 52 53 54
These functions are ``shortcuts'' to the methods of the same name,
described below.
\end{funcdesc}


55
\subsection{IC Objects}
56

57 58 59
\class{IC} objects have a mapping interface, hence to obtain the mail
address you simply get \code{\var{ic}['MailAddress']}. Assignment also
works, and changes the option in the configuration file.
60 61

The module knows about various datatypes, and converts the internal IC
62
representation to a ``logical'' Python data structure. Running the
Fred Drake's avatar
Fred Drake committed
63
\module{ic} module standalone will run a test program that lists all
64
keys and values in your IC database, this will have to serve as
65 66 67
documentation.

If the module does not know how to represent the data it returns an
Fred Drake's avatar
Fred Drake committed
68
instance of the \code{ICOpaqueData} type, with the raw data in its
Fred Drake's avatar
Fred Drake committed
69
\member{data} attribute. Objects of this type are also acceptable values
70 71
for assignment.

72 73
Besides the dictionary interface, \class{IC} objects have the
following methods:
74 75


76
\begin{methoddesc}{launchurl}{url\optional{, hint}}
77 78
Parse the given URL, lauch the correct application and pass it the
URL. The optional \var{hint} can be a scheme name such as
Fred Drake's avatar
Fred Drake committed
79 80
\code{'mailto:'}, in which case incomplete URLs are completed with this
scheme.  If \var{hint} is not provided, incomplete URLs are invalid.
81
\end{methoddesc}
82

83
\begin{methoddesc}{parseurl}{data\optional{, start\optional{, end\optional{, hint}}}}
84 85 86
Find an URL somewhere in \var{data} and return start position, end
position and the URL. The optional \var{start} and \var{end} can be
used to limit the search, so for instance if a user clicks in a long
87
text field you can pass the whole text field and the click-position in
88
\var{start} and this routine will return the whole URL in which the
Fred Drake's avatar
Fred Drake committed
89 90
user clicked.  As above, \var{hint} is an optional scheme used to
complete incomplete URLs.
91
\end{methoddesc}
92

93
\begin{methoddesc}{mapfile}{file}
94
Return the mapping entry for the given \var{file}, which can be passed
Fred Drake's avatar
Fred Drake committed
95 96
as either a filename or an \function{macfs.FSSpec()} result, and which
need not exist.
97

98
The mapping entry is returned as a tuple \code{(\var{version},
99 100
\var{type}, \var{creator}, \var{postcreator}, \var{flags},
\var{extension}, \var{appname}, \var{postappname}, \var{mimetype},
101
\var{entryname})}, where \var{version} is the entry version
Fred Drake's avatar
Fred Drake committed
102 103 104
number, \var{type} is the 4-character filetype, \var{creator} is the
4-character creator type, \var{postcreator} is the 4-character creator
code of an
105 106 107 108 109 110 111
optional application to post-process the file after downloading,
\var{flags} are various bits specifying whether to transfer in binary
or ascii and such, \var{extension} is the filename extension for this
file type, \var{appname} is the printable name of the application to
which this file belongs, \var{postappname} is the name of the
postprocessing application, \var{mimetype} is the MIME type of this
file and \var{entryname} is the name of this entry.
112
\end{methoddesc}
113

114
\begin{methoddesc}{maptypecreator}{type, creator\optional{, filename}}
Fred Drake's avatar
Fred Drake committed
115
Return the mapping entry for files with given 4-character \var{type} and
116 117 118 119 120
\var{creator} codes. The optional \var{filename} may be specified to
further help finding the correct entry (if the creator code is
\code{'????'}, for instance).

The mapping entry is returned in the same format as for \var{mapfile}.
121
\end{methoddesc}
122

123
\begin{methoddesc}{settypecreator}{file}
124
Given an existing \var{file}, specified either as a filename or as an
Fred Drake's avatar
Fred Drake committed
125
\function{macfs.FSSpec()} result, set its creator and type correctly based
Fred Drake's avatar
Fred Drake committed
126 127
on its extension.  The finder is told about the change, so the finder
icon will be updated quickly.
128
\end{methoddesc}