blob: 785a0b7e45ead4c395e63532b9c300e428212c43 [file] [log] [blame]
Jack Jansenebed45f1995-08-14 13:40:05 +00001\section{Built-in Module \sectcode{MacOS}}
Guido van Rossume47da0a1997-07-17 16:34:52 +00002\label{module-MacOS}
Jack Jansenebed45f1995-08-14 13:40:05 +00003\bimodindex{MacOS}
4
5\renewcommand{\indexsubitem}{(in module MacOS)}
6
7This module provides access to MacOS specific functionality in the
8python interpreter, such as how the interpreter eventloop functions
9and the like. Use with care.
10
11Note the capitalisation of the module name, this is a historical
12artefact.
13
14\begin{excdesc}{Error}
15This exception is raised on MacOS generated errors, either from
16functions in this module or from other mac-specific modules like the
17toolbox interfaces. The arguments are the integer error code (the
18\var{OSErr} value) and a textual description of the error code.
Guido van Rossum7e42cab1996-10-15 14:37:31 +000019Symbolic names for all known error codes are defined in the standard
20module \var{macerrors}.
Jack Jansenebed45f1995-08-14 13:40:05 +000021\end{excdesc}
22
Guido van Rossume229d861997-08-18 15:14:26 +000023\begin{funcdesc}{SetEventHandler}{handler}
24In the inner interpreter loop Python will occasionally check for events,
25unless disabled with \var{ScheduleParams}. With this function you
26can pass a Python event-handler function that will be called if an event
27is available. The event is passed as parameter and the function should return
28non-zero if the event has been fully processed, otherwise event processing
29continues (by passing the event to the console window package, for instance).
Jack Jansenebed45f1995-08-14 13:40:05 +000030
Guido van Rossume229d861997-08-18 15:14:26 +000031Call SetEventHandler without parameter to clear the event handler. Setting
32an eventhandler while one is already set is an error.
Jack Jansenebed45f1995-08-14 13:40:05 +000033\end{funcdesc}
34
Guido van Rossume229d861997-08-18 15:14:26 +000035\begin{funcdesc}{SchedParams}{\optional{doint\, evtmask\, besocial\,
36 interval\, bgyield}}
37Influence the interpreter inner loop event handling. \var{Interval}
38specifies how often (in seconds, floating point) the interpreter
39should enter the event processing code. When true, \var{doint} causes
40interrupt (command-dot) checking to be done. \var{Evtmask} tells the
41interpreter to do event processing for events in the mask (redraws,
Fred Drake289f97d1997-08-22 13:51:31 +000042mouseclicks to switch to other applications, etc). The \var{besocial}
43flag gives other processes a chance to run. They are granted minimal
Guido van Rossume229d861997-08-18 15:14:26 +000044runtime when Python is in the foreground and \var{bgyield} seconds per
45\var{interval} when Python runs in the background.
Jack Jansenebed45f1995-08-14 13:40:05 +000046
Guido van Rossume229d861997-08-18 15:14:26 +000047All parameters are optional, and default to the current value. The return
48value of this function is a tuple with the old values of these options.
49Initial defaults are that all processing is enabled, checking is done every
50quarter second and the CPU is given up for a quarter second when in the
51background.
Jack Jansenebed45f1995-08-14 13:40:05 +000052\end{funcdesc}
53
54\begin{funcdesc}{HandleEvent}{ev}
55Pass the event record \code{ev} back to the python event loop, or
56possibly to the handler for the \code{sys.stdout} window (based on the
57compiler used to build python). This allows python programs that do
58their own event handling to still have some command-period and
59window-switching capability.
Guido van Rossume229d861997-08-18 15:14:26 +000060
61If you attempt to call this function from an event handler set through
62\code{SetEventHandler} you will get an exception.
Jack Jansenebed45f1995-08-14 13:40:05 +000063\end{funcdesc}
64
65\begin{funcdesc}{GetErrorString}{errno}
66Return the textual description of MacOS error code \var{errno}.
67\end{funcdesc}
Guido van Rossum66774a91996-07-21 02:20:58 +000068
69\begin{funcdesc}{splash}{resid}
70This function will put a splash window
71on-screen, with the contents of the DLOG resource specified by
72\code{resid}. Calling with a zero argument will remove the splash
Guido van Rossum7e42cab1996-10-15 14:37:31 +000073screen. This function is useful if you want an applet to post a splash screen
Guido van Rossum66774a91996-07-21 02:20:58 +000074early in initialization without first having to load numerous
75extension modules.
76\end{funcdesc}
77
Guido van Rossum7e42cab1996-10-15 14:37:31 +000078\begin{funcdesc}{DebugStr}{message \optional{\, object}}
79Drop to the low-level debugger with message \var{message}. The
80optional \var{object} argument is not used, but can easily be
81inspected from the debugger.
82
83Note that you should use this function with extreme care: if no
84low-level debugger like MacsBug is installed this call will crash your
85system. It is intended mainly for developers of Python extension
86modules.
87\end{funcdesc}
88
Guido van Rossum66774a91996-07-21 02:20:58 +000089\begin{funcdesc}{openrf}{name \optional{\, mode}}
90Open the resource fork of a file. Arguments are the same as for the
91builtin function \code{open}. The object returned has file-like
92semantics, but it is not a python file object, so there may be subtle
93differences.
94\end{funcdesc}