blob: 3a2de168c7b91c0d6b3c63f86509c8fa5db9dfa9 [file] [log] [blame]
Fred Drakec817e271998-08-10 18:40:22 +00001\section{\module{MacOS} ---
Fred Drake30cf1182001-08-03 17:11:33 +00002 Access to Mac OS interpreter features}
Fred Drakef6863c11999-03-02 16:37:17 +00003
Fred Drakefe7f3bc1998-07-23 17:55:31 +00004\declaremodule{builtin}{MacOS}
Fred Drakef6863c11999-03-02 16:37:17 +00005 \platform{Mac}
Fred Drake30cf1182001-08-03 17:11:33 +00006\modulesynopsis{Access to Mac OS-specific interpreter features.}
Fred Drakefe7f3bc1998-07-23 17:55:31 +00007
Jack Jansenebed45f1995-08-14 13:40:05 +00008
Jack Jansenebed45f1995-08-14 13:40:05 +00009This module provides access to MacOS specific functionality in the
Fred Drake61885921998-04-03 07:16:46 +000010Python interpreter, such as how the interpreter eventloop functions
Jack Jansenebed45f1995-08-14 13:40:05 +000011and the like. Use with care.
12
Fred Drake30cf1182001-08-03 17:11:33 +000013Note the capitalization of the module name; this is a historical
Fred Drake61885921998-04-03 07:16:46 +000014artifact.
Fred Drake30cf1182001-08-03 17:11:33 +000015
Jack Jansencb60dae2001-08-03 13:19:56 +000016\begin{datadesc}{runtimemodel}
Fred Drake30cf1182001-08-03 17:11:33 +000017Either \code{'ppc'}, \code{'carbon'} or \code{'macho'}. This
18signifies whether this Python uses the classic (InterfaceLib style)
19runtime model, the Mac OS X compatible CarbonLib style or the Mac OS
20X-only Mach-O style.
Jack Jansencb60dae2001-08-03 13:19:56 +000021\end{datadesc}
Jack Jansenebed45f1995-08-14 13:40:05 +000022
23\begin{excdesc}{Error}
24This exception is raised on MacOS generated errors, either from
25functions in this module or from other mac-specific modules like the
26toolbox interfaces. The arguments are the integer error code (the
Fred Drake61885921998-04-03 07:16:46 +000027\cdata{OSErr} value) and a textual description of the error code.
Guido van Rossum7e42cab1996-10-15 14:37:31 +000028Symbolic names for all known error codes are defined in the standard
Fred Drake30cf1182001-08-03 17:11:33 +000029module \refmodule{macerrors}.\refstmodindex{macerrors}
Jack Jansenebed45f1995-08-14 13:40:05 +000030\end{excdesc}
31
Guido van Rossume229d861997-08-18 15:14:26 +000032\begin{funcdesc}{SetEventHandler}{handler}
33In the inner interpreter loop Python will occasionally check for events,
Fred Drake61885921998-04-03 07:16:46 +000034unless disabled with \function{ScheduleParams()}. With this function you
Guido van Rossume229d861997-08-18 15:14:26 +000035can pass a Python event-handler function that will be called if an event
36is available. The event is passed as parameter and the function should return
37non-zero if the event has been fully processed, otherwise event processing
38continues (by passing the event to the console window package, for instance).
Jack Jansenebed45f1995-08-14 13:40:05 +000039
Fred Drake61885921998-04-03 07:16:46 +000040Call \function{SetEventHandler()} without a parameter to clear the
41event handler. Setting an event handler while one is already set is an
42error.
Jack Jansenebed45f1995-08-14 13:40:05 +000043\end{funcdesc}
44
Fred Drake61885921998-04-03 07:16:46 +000045\begin{funcdesc}{SchedParams}{\optional{doint\optional{, evtmask\optional{,
46 besocial\optional{, interval\optional{,
47 bgyield}}}}}}
Guido van Rossume229d861997-08-18 15:14:26 +000048Influence the interpreter inner loop event handling. \var{Interval}
49specifies how often (in seconds, floating point) the interpreter
50should enter the event processing code. When true, \var{doint} causes
Fred Drake61885921998-04-03 07:16:46 +000051interrupt (command-dot) checking to be done. \var{evtmask} tells the
Guido van Rossume229d861997-08-18 15:14:26 +000052interpreter to do event processing for events in the mask (redraws,
Fred Drake289f97d1997-08-22 13:51:31 +000053mouseclicks to switch to other applications, etc). The \var{besocial}
54flag gives other processes a chance to run. They are granted minimal
Guido van Rossume229d861997-08-18 15:14:26 +000055runtime when Python is in the foreground and \var{bgyield} seconds per
56\var{interval} when Python runs in the background.
Jack Jansenebed45f1995-08-14 13:40:05 +000057
Guido van Rossume229d861997-08-18 15:14:26 +000058All parameters are optional, and default to the current value. The return
59value of this function is a tuple with the old values of these options.
60Initial defaults are that all processing is enabled, checking is done every
Fred Drake17f690f2001-07-14 02:14:42 +000061quarter second and the processor is given up for a quarter second when in the
Guido van Rossume229d861997-08-18 15:14:26 +000062background.
Jack Jansend22eb592002-10-19 21:36:56 +000063
64The most common use case is to call \code{SchedParams(0, 0)} to completely disable
65event handling in the interpreter mainloop.
Jack Jansenebed45f1995-08-14 13:40:05 +000066\end{funcdesc}
67
68\begin{funcdesc}{HandleEvent}{ev}
Fred Drake61885921998-04-03 07:16:46 +000069Pass the event record \var{ev} back to the Python event loop, or
Jack Jansenebed45f1995-08-14 13:40:05 +000070possibly to the handler for the \code{sys.stdout} window (based on the
Fred Drake61885921998-04-03 07:16:46 +000071compiler used to build Python). This allows Python programs that do
Jack Jansenebed45f1995-08-14 13:40:05 +000072their own event handling to still have some command-period and
73window-switching capability.
Guido van Rossume229d861997-08-18 15:14:26 +000074
75If you attempt to call this function from an event handler set through
Fred Drake61885921998-04-03 07:16:46 +000076\function{SetEventHandler()} you will get an exception.
Jack Jansenebed45f1995-08-14 13:40:05 +000077\end{funcdesc}
78
79\begin{funcdesc}{GetErrorString}{errno}
80Return the textual description of MacOS error code \var{errno}.
81\end{funcdesc}
Guido van Rossum66774a91996-07-21 02:20:58 +000082
83\begin{funcdesc}{splash}{resid}
84This function will put a splash window
85on-screen, with the contents of the DLOG resource specified by
Fred Drake61885921998-04-03 07:16:46 +000086\var{resid}. Calling with a zero argument will remove the splash
Guido van Rossum7e42cab1996-10-15 14:37:31 +000087screen. This function is useful if you want an applet to post a splash screen
Guido van Rossum66774a91996-07-21 02:20:58 +000088early in initialization without first having to load numerous
89extension modules.
90\end{funcdesc}
91
Fred Drake671fe9d1997-12-29 18:53:31 +000092\begin{funcdesc}{DebugStr}{message \optional{, object}}
Guido van Rossum7e42cab1996-10-15 14:37:31 +000093Drop to the low-level debugger with message \var{message}. The
94optional \var{object} argument is not used, but can easily be
95inspected from the debugger.
96
97Note that you should use this function with extreme care: if no
98low-level debugger like MacsBug is installed this call will crash your
99system. It is intended mainly for developers of Python extension
100modules.
101\end{funcdesc}
102
Fred Drake671fe9d1997-12-29 18:53:31 +0000103\begin{funcdesc}{openrf}{name \optional{, mode}}
Guido van Rossum66774a91996-07-21 02:20:58 +0000104Open the resource fork of a file. Arguments are the same as for the
Fred Drake61885921998-04-03 07:16:46 +0000105built-in function \function{open()}. The object returned has file-like
106semantics, but it is not a Python file object, so there may be subtle
Guido van Rossum66774a91996-07-21 02:20:58 +0000107differences.
108\end{funcdesc}