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