| 
									
										
										
										
											1998-08-10 18:40:22 +00:00
										 |  |  | \section{\module{MacOS} --- | 
					
						
							| 
									
										
										
										
											2001-08-03 17:11:33 +00:00
										 |  |  |          Access to Mac OS interpreter features} | 
					
						
							| 
									
										
										
										
											1998-07-23 17:55:31 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											1999-03-02 16:37:17 +00:00
										 |  |  | \declaremodule{builtin}{MacOS} | 
					
						
							|  |  |  |   \platform{Mac} | 
					
						
							| 
									
										
										
										
											2001-08-03 17:11:33 +00:00
										 |  |  | \modulesynopsis{Access to Mac OS-specific interpreter features.} | 
					
						
							| 
									
										
										
										
											1998-07-23 17:55:31 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											1995-08-14 13:40:05 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | This module provides access to MacOS specific functionality in the | 
					
						
							| 
									
										
										
										
											1998-04-03 07:16:46 +00:00
										 |  |  | Python interpreter, such as how the interpreter eventloop functions | 
					
						
							| 
									
										
										
										
											1995-08-14 13:40:05 +00:00
										 |  |  | and the like. Use with care. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2001-08-03 17:11:33 +00:00
										 |  |  | Note the capitalization of the module name; this is a historical | 
					
						
							| 
									
										
										
										
											1998-04-03 07:16:46 +00:00
										 |  |  | artifact. | 
					
						
							| 
									
										
										
										
											2001-08-03 17:11:33 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2001-08-03 13:19:56 +00:00
										 |  |  | \begin{datadesc}{runtimemodel} | 
					
						
							| 
									
										
										
										
											2003-02-24 11:02:36 +00:00
										 |  |  | Either\code{'carbon'} or \code{'macho'}.  This | 
					
						
							|  |  |  | signifies whether this Python uses the Mac OS X and Mac OS 9 compatible  | 
					
						
							|  |  |  | CarbonLib style or the Mac OS | 
					
						
							|  |  |  | X-only Mach-O style. In earlier versions of Python  the value could | 
					
						
							|  |  |  | also be \code{'ppc'} for the classic Mac OS 8 runtime model. | 
					
						
							|  |  |  | \end{datadesc} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | \begin{datadesc}{linkmodel} | 
					
						
							|  |  |  | The way the interpreter has been linked. As extension modules may be | 
					
						
							|  |  |  | incompatible between linking models, packages could use this information to give | 
					
						
							|  |  |  | more decent error messages. The value is one of \code{'static'} for a | 
					
						
							|  |  |  | statically linked Python, \code{'framework'} for Python in a Mac OS X framework, | 
					
						
							|  |  |  | \code{'shared'} for Python in a standard unix shared library and | 
					
						
							|  |  |  | \code{'cfm'} for the Mac OS 9-compatible Python. | 
					
						
							| 
									
										
										
										
											2001-08-03 13:19:56 +00:00
										 |  |  | \end{datadesc} | 
					
						
							| 
									
										
										
										
											1995-08-14 13:40:05 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | \begin{excdesc}{Error} | 
					
						
							|  |  |  | This exception is raised on MacOS generated errors, either from | 
					
						
							|  |  |  | functions in this module or from other mac-specific modules like the | 
					
						
							|  |  |  | toolbox interfaces. The arguments are the integer error code (the | 
					
						
							| 
									
										
										
										
											1998-04-03 07:16:46 +00:00
										 |  |  | \cdata{OSErr} value) and a textual description of the error code. | 
					
						
							| 
									
										
										
										
											1996-10-15 14:37:31 +00:00
										 |  |  | Symbolic names for all known error codes are defined in the standard | 
					
						
							| 
									
										
										
										
											2001-08-03 17:11:33 +00:00
										 |  |  | module \refmodule{macerrors}.\refstmodindex{macerrors} | 
					
						
							| 
									
										
										
										
											1995-08-14 13:40:05 +00:00
										 |  |  | \end{excdesc} | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											1997-08-18 15:14:26 +00:00
										 |  |  | \begin{funcdesc}{SetEventHandler}{handler} | 
					
						
							|  |  |  | In the inner interpreter loop Python will occasionally check for events, | 
					
						
							| 
									
										
										
										
											1998-04-03 07:16:46 +00:00
										 |  |  | unless disabled with \function{ScheduleParams()}. With this function you | 
					
						
							| 
									
										
										
										
											1997-08-18 15:14:26 +00:00
										 |  |  | can pass a Python event-handler function that will be called if an event | 
					
						
							|  |  |  | is available. The event is passed as parameter and the function should return | 
					
						
							|  |  |  | non-zero if the event has been fully processed, otherwise event processing | 
					
						
							|  |  |  | continues (by passing the event to the console window package, for instance). | 
					
						
							| 
									
										
										
										
											1995-08-14 13:40:05 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											1998-04-03 07:16:46 +00:00
										 |  |  | Call \function{SetEventHandler()} without a parameter to clear the | 
					
						
							|  |  |  | event handler. Setting an event handler while one is already set is an | 
					
						
							|  |  |  | error. | 
					
						
							| 
									
										
										
										
											2003-02-12 09:58:33 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | Availability: MacPython-OS9. | 
					
						
							| 
									
										
										
										
											1995-08-14 13:40:05 +00:00
										 |  |  | \end{funcdesc} | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											1998-04-03 07:16:46 +00:00
										 |  |  | \begin{funcdesc}{SchedParams}{\optional{doint\optional{, evtmask\optional{, | 
					
						
							|  |  |  |                               besocial\optional{, interval\optional{, | 
					
						
							|  |  |  |                               bgyield}}}}}} | 
					
						
							| 
									
										
										
										
											1997-08-18 15:14:26 +00:00
										 |  |  | Influence the interpreter inner loop event handling. \var{Interval} | 
					
						
							|  |  |  | specifies how often (in seconds, floating point) the interpreter | 
					
						
							|  |  |  | should enter the event processing code. When true, \var{doint} causes | 
					
						
							| 
									
										
										
										
											1998-04-03 07:16:46 +00:00
										 |  |  | interrupt (command-dot) checking to be done. \var{evtmask} tells the | 
					
						
							| 
									
										
										
										
											1997-08-18 15:14:26 +00:00
										 |  |  | interpreter to do event processing for events in the mask (redraws, | 
					
						
							| 
									
										
										
										
											1997-08-22 13:51:31 +00:00
										 |  |  | mouseclicks to switch to other applications, etc). The \var{besocial} | 
					
						
							|  |  |  | flag gives other processes a chance to run. They are granted minimal | 
					
						
							| 
									
										
										
										
											1997-08-18 15:14:26 +00:00
										 |  |  | runtime when Python is in the foreground and \var{bgyield} seconds per | 
					
						
							|  |  |  | \var{interval} when Python runs in the background. | 
					
						
							| 
									
										
										
										
											1995-08-14 13:40:05 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											1997-08-18 15:14:26 +00:00
										 |  |  | All parameters are optional, and default to the current value. The return | 
					
						
							|  |  |  | value of this function is a tuple with the old values of these options. | 
					
						
							|  |  |  | Initial defaults are that all processing is enabled, checking is done every | 
					
						
							| 
									
										
										
										
											2001-07-14 02:14:42 +00:00
										 |  |  | quarter second and the processor is given up for a quarter second when in the | 
					
						
							| 
									
										
										
										
											1997-08-18 15:14:26 +00:00
										 |  |  | background. | 
					
						
							| 
									
										
										
										
											2002-10-19 21:36:56 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | The most common use case is to call \code{SchedParams(0, 0)} to completely disable | 
					
						
							|  |  |  | event handling in the interpreter mainloop. | 
					
						
							| 
									
										
										
										
											2003-02-12 09:58:33 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | Availability: MacPython-OS9. | 
					
						
							| 
									
										
										
										
											1995-08-14 13:40:05 +00:00
										 |  |  | \end{funcdesc} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | \begin{funcdesc}{HandleEvent}{ev} | 
					
						
							| 
									
										
										
										
											1998-04-03 07:16:46 +00:00
										 |  |  | Pass the event record \var{ev} back to the Python event loop, or | 
					
						
							| 
									
										
										
										
											1995-08-14 13:40:05 +00:00
										 |  |  | possibly to the handler for the \code{sys.stdout} window (based on the | 
					
						
							| 
									
										
										
										
											1998-04-03 07:16:46 +00:00
										 |  |  | compiler used to build Python). This allows Python programs that do | 
					
						
							| 
									
										
										
										
											1995-08-14 13:40:05 +00:00
										 |  |  | their own event handling to still have some command-period and | 
					
						
							|  |  |  | window-switching capability. | 
					
						
							| 
									
										
										
										
											1997-08-18 15:14:26 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | If you attempt to call this function from an event handler set through | 
					
						
							| 
									
										
										
										
											1998-04-03 07:16:46 +00:00
										 |  |  | \function{SetEventHandler()} you will get an exception. | 
					
						
							| 
									
										
										
										
											2003-02-12 09:58:33 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | Availability: MacPython-OS9. | 
					
						
							| 
									
										
										
										
											1995-08-14 13:40:05 +00:00
										 |  |  | \end{funcdesc} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | \begin{funcdesc}{GetErrorString}{errno} | 
					
						
							|  |  |  | Return the textual description of MacOS error code \var{errno}. | 
					
						
							|  |  |  | \end{funcdesc} | 
					
						
							| 
									
										
										
										
											1996-07-21 02:20:58 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | \begin{funcdesc}{splash}{resid} | 
					
						
							|  |  |  | This function will put a splash window | 
					
						
							|  |  |  | on-screen, with the contents of the DLOG resource specified by | 
					
						
							| 
									
										
										
										
											1998-04-03 07:16:46 +00:00
										 |  |  | \var{resid}. Calling with a zero argument will remove the splash | 
					
						
							| 
									
										
										
										
											1996-10-15 14:37:31 +00:00
										 |  |  | screen. This function is useful if you want an applet to post a splash screen | 
					
						
							| 
									
										
										
										
											1996-07-21 02:20:58 +00:00
										 |  |  | early in initialization without first having to load numerous | 
					
						
							|  |  |  | extension modules. | 
					
						
							| 
									
										
										
										
											2003-02-12 09:58:33 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | Availability: MacPython-OS9. | 
					
						
							| 
									
										
										
										
											1996-07-21 02:20:58 +00:00
										 |  |  | \end{funcdesc} | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											1997-12-29 18:53:31 +00:00
										 |  |  | \begin{funcdesc}{DebugStr}{message \optional{, object}} | 
					
						
							| 
									
										
										
										
											2003-02-12 09:58:33 +00:00
										 |  |  | On Mac OS 9, drop to the low-level debugger with message \var{message}. The | 
					
						
							| 
									
										
										
										
											1996-10-15 14:37:31 +00:00
										 |  |  | optional \var{object} argument is not used, but can easily be | 
					
						
							| 
									
										
										
										
											2003-02-12 09:58:33 +00:00
										 |  |  | inspected from the debugger. On Mac OS X the string is simply printed | 
					
						
							|  |  |  | to stderr. | 
					
						
							| 
									
										
										
										
											1996-10-15 14:37:31 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | Note that you should use this function with extreme care: if no | 
					
						
							|  |  |  | low-level debugger like MacsBug is installed this call will crash your | 
					
						
							|  |  |  | system. It is intended mainly for developers of Python extension | 
					
						
							|  |  |  | modules. | 
					
						
							|  |  |  | \end{funcdesc} | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2003-02-12 09:58:33 +00:00
										 |  |  | \begin{funcdesc}{SysBeep}{} | 
					
						
							|  |  |  | Ring the bell. | 
					
						
							|  |  |  | \end{funcdesc} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | \begin{funcdesc}{GetTicks}{} | 
					
						
							|  |  |  | Get the number of clock ticks (1/60th of a second) since system boot. | 
					
						
							|  |  |  | \end{funcdesc} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | \begin{funcdesc}{GetCreatorAndType}{file} | 
					
						
							|  |  |  | Return the file creator and file type as two four-character strings. | 
					
						
							|  |  |  | The \var{file} parameter can be a pathname or an \code{FSSpec} or  | 
					
						
							|  |  |  | \code{FSRef} object. | 
					
						
							|  |  |  | \end{funcdesc} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | \begin{funcdesc}{SetCreatorAndType}{file, creator, type} | 
					
						
							|  |  |  | Set the file creator and file type. | 
					
						
							|  |  |  | The \var{file} parameter can be a pathname or an \code{FSSpec} or  | 
					
						
							|  |  |  | \code{FSRef} object. \var{creator} and \var{type} must be four character | 
					
						
							|  |  |  | strings. | 
					
						
							|  |  |  | \end{funcdesc} | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											1997-12-29 18:53:31 +00:00
										 |  |  | \begin{funcdesc}{openrf}{name \optional{, mode}} | 
					
						
							| 
									
										
										
										
											1996-07-21 02:20:58 +00:00
										 |  |  | Open the resource fork of a file. Arguments are the same as for the | 
					
						
							| 
									
										
										
										
											1998-04-03 07:16:46 +00:00
										 |  |  | built-in function \function{open()}. The object returned has file-like | 
					
						
							|  |  |  | semantics, but it is not a Python file object, so there may be subtle | 
					
						
							| 
									
										
										
										
											1996-07-21 02:20:58 +00:00
										 |  |  | differences. | 
					
						
							|  |  |  | \end{funcdesc} | 
					
						
							| 
									
										
										
										
											2003-02-24 11:02:36 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | \begin{funcdesc}{WMAvailable}{} | 
					
						
							|  |  |  | Checks wether the current process has access to the window manager. | 
					
						
							|  |  |  | The method will return \code{False} if the window manager is not available, | 
					
						
							|  |  |  | for instance when running on Mac OS X Server or when logged in via ssh, | 
					
						
							|  |  |  | or when the current interpreter is not running from a fullblown application | 
					
						
							|  |  |  | bundle. A script runs from an application bundle either when it has been | 
					
						
							|  |  |  | started with \program{pythonw} in stead of \program{python} or when running  | 
					
						
							|  |  |  | as an applet. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | On Mac OS 9 the method always returns \code{True}. | 
					
						
							|  |  |  | \end{funcdesc} |