blob: 7aa4104805d6f235e1b6bd8ef7a14f72ac93a601 [file] [log] [blame]
Fred Drake3a0351c1998-04-04 07:23:21 +00001\section{Built-in Module \module{MacOS}}
Fred Drakefe7f3bc1998-07-23 17:55:31 +00002\declaremodule{builtin}{MacOS}
3
4\modulesynopsis{Access to MacOS specific interpreter features.}
5
Jack Jansenebed45f1995-08-14 13:40:05 +00006
Jack Jansenebed45f1995-08-14 13:40:05 +00007
8This module provides access to MacOS specific functionality in the
Fred Drake61885921998-04-03 07:16:46 +00009Python interpreter, such as how the interpreter eventloop functions
Jack Jansenebed45f1995-08-14 13:40:05 +000010and the like. Use with care.
11
12Note the capitalisation of the module name, this is a historical
Fred Drake61885921998-04-03 07:16:46 +000013artifact.
Jack Jansenebed45f1995-08-14 13:40:05 +000014
15\begin{excdesc}{Error}
16This exception is raised on MacOS generated errors, either from
17functions in this module or from other mac-specific modules like the
18toolbox interfaces. The arguments are the integer error code (the
Fred Drake61885921998-04-03 07:16:46 +000019\cdata{OSErr} value) and a textual description of the error code.
Guido van Rossum7e42cab1996-10-15 14:37:31 +000020Symbolic names for all known error codes are defined in the standard
Fred Drake61885921998-04-03 07:16:46 +000021module \module{macerrors}\refstmodindex{macerrors}.
Jack Jansenebed45f1995-08-14 13:40:05 +000022\end{excdesc}
23
Guido van Rossume229d861997-08-18 15:14:26 +000024\begin{funcdesc}{SetEventHandler}{handler}
25In the inner interpreter loop Python will occasionally check for events,
Fred Drake61885921998-04-03 07:16:46 +000026unless disabled with \function{ScheduleParams()}. With this function you
Guido van Rossume229d861997-08-18 15:14:26 +000027can pass a Python event-handler function that will be called if an event
28is available. The event is passed as parameter and the function should return
29non-zero if the event has been fully processed, otherwise event processing
30continues (by passing the event to the console window package, for instance).
Jack Jansenebed45f1995-08-14 13:40:05 +000031
Fred Drake61885921998-04-03 07:16:46 +000032Call \function{SetEventHandler()} without a parameter to clear the
33event handler. Setting an event handler while one is already set is an
34error.
Jack Jansenebed45f1995-08-14 13:40:05 +000035\end{funcdesc}
36
Fred Drake61885921998-04-03 07:16:46 +000037\begin{funcdesc}{SchedParams}{\optional{doint\optional{, evtmask\optional{,
38 besocial\optional{, interval\optional{,
39 bgyield}}}}}}
Guido van Rossume229d861997-08-18 15:14:26 +000040Influence the interpreter inner loop event handling. \var{Interval}
41specifies how often (in seconds, floating point) the interpreter
42should enter the event processing code. When true, \var{doint} causes
Fred Drake61885921998-04-03 07:16:46 +000043interrupt (command-dot) checking to be done. \var{evtmask} tells the
Guido van Rossume229d861997-08-18 15:14:26 +000044interpreter to do event processing for events in the mask (redraws,
Fred Drake289f97d1997-08-22 13:51:31 +000045mouseclicks to switch to other applications, etc). The \var{besocial}
46flag gives other processes a chance to run. They are granted minimal
Guido van Rossume229d861997-08-18 15:14:26 +000047runtime when Python is in the foreground and \var{bgyield} seconds per
48\var{interval} when Python runs in the background.
Jack Jansenebed45f1995-08-14 13:40:05 +000049
Guido van Rossume229d861997-08-18 15:14:26 +000050All parameters are optional, and default to the current value. The return
51value of this function is a tuple with the old values of these options.
52Initial defaults are that all processing is enabled, checking is done every
53quarter second and the CPU is given up for a quarter second when in the
54background.
Jack Jansenebed45f1995-08-14 13:40:05 +000055\end{funcdesc}
56
57\begin{funcdesc}{HandleEvent}{ev}
Fred Drake61885921998-04-03 07:16:46 +000058Pass the event record \var{ev} back to the Python event loop, or
Jack Jansenebed45f1995-08-14 13:40:05 +000059possibly to the handler for the \code{sys.stdout} window (based on the
Fred Drake61885921998-04-03 07:16:46 +000060compiler used to build Python). This allows Python programs that do
Jack Jansenebed45f1995-08-14 13:40:05 +000061their own event handling to still have some command-period and
62window-switching capability.
Guido van Rossume229d861997-08-18 15:14:26 +000063
64If you attempt to call this function from an event handler set through
Fred Drake61885921998-04-03 07:16:46 +000065\function{SetEventHandler()} you will get an exception.
Jack Jansenebed45f1995-08-14 13:40:05 +000066\end{funcdesc}
67
68\begin{funcdesc}{GetErrorString}{errno}
69Return the textual description of MacOS error code \var{errno}.
70\end{funcdesc}
Guido van Rossum66774a91996-07-21 02:20:58 +000071
72\begin{funcdesc}{splash}{resid}
73This function will put a splash window
74on-screen, with the contents of the DLOG resource specified by
Fred Drake61885921998-04-03 07:16:46 +000075\var{resid}. Calling with a zero argument will remove the splash
Guido van Rossum7e42cab1996-10-15 14:37:31 +000076screen. This function is useful if you want an applet to post a splash screen
Guido van Rossum66774a91996-07-21 02:20:58 +000077early in initialization without first having to load numerous
78extension modules.
79\end{funcdesc}
80
Fred Drake671fe9d1997-12-29 18:53:31 +000081\begin{funcdesc}{DebugStr}{message \optional{, object}}
Guido van Rossum7e42cab1996-10-15 14:37:31 +000082Drop to the low-level debugger with message \var{message}. The
83optional \var{object} argument is not used, but can easily be
84inspected from the debugger.
85
86Note that you should use this function with extreme care: if no
87low-level debugger like MacsBug is installed this call will crash your
88system. It is intended mainly for developers of Python extension
89modules.
90\end{funcdesc}
91
Fred Drake671fe9d1997-12-29 18:53:31 +000092\begin{funcdesc}{openrf}{name \optional{, mode}}
Guido van Rossum66774a91996-07-21 02:20:58 +000093Open the resource fork of a file. Arguments are the same as for the
Fred Drake61885921998-04-03 07:16:46 +000094built-in function \function{open()}. The object returned has file-like
95semantics, but it is not a Python file object, so there may be subtle
Guido van Rossum66774a91996-07-21 02:20:58 +000096differences.
97\end{funcdesc}