| 
									
										
										
										
											1995-01-22 18:36:13 +00:00
										 |  |  | /***********************************************************
 | 
					
						
							| 
									
										
										
										
											1997-01-31 16:15:11 +00:00
										 |  |  | Copyright 1991-1997 by Stichting Mathematisch Centrum, Amsterdam, | 
					
						
							| 
									
										
										
										
											1995-01-22 18:36:13 +00:00
										 |  |  | The Netherlands. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |                         All Rights Reserved | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Permission to use, copy, modify, and distribute this software and its  | 
					
						
							|  |  |  | documentation for any purpose and without fee is hereby granted,  | 
					
						
							|  |  |  | provided that the above copyright notice appear in all copies and that | 
					
						
							|  |  |  | both that copyright notice and this permission notice appear in  | 
					
						
							|  |  |  | supporting documentation, and that the names of Stichting Mathematisch | 
					
						
							|  |  |  | Centrum or CWI not be used in advertising or publicity pertaining to | 
					
						
							|  |  |  | distribution of the software without specific, written prior permission. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | STICHTING MATHEMATISCH CENTRUM DISCLAIMS ALL WARRANTIES WITH REGARD TO | 
					
						
							|  |  |  | THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND | 
					
						
							|  |  |  | FITNESS, IN NO EVENT SHALL STICHTING MATHEMATISCH CENTRUM BE LIABLE | 
					
						
							|  |  |  | FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES | 
					
						
							|  |  |  | WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN | 
					
						
							|  |  |  | ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT | 
					
						
							|  |  |  | OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ******************************************************************/ | 
					
						
							| 
									
										
										
										
											2002-09-10 12:32:47 +00:00
										 |  |  | #ifndef Py_MACGLUE_H
 | 
					
						
							|  |  |  | #define Py_MACGLUE_H
 | 
					
						
							| 
									
										
										
										
											2001-05-12 22:46:35 +00:00
										 |  |  | #ifdef WITHOUT_FRAMEWORKS
 | 
					
						
							| 
									
										
										
										
											1995-01-18 13:53:49 +00:00
										 |  |  | #include <Types.h>
 | 
					
						
							| 
									
										
										
										
											1995-01-22 18:36:13 +00:00
										 |  |  | #include <Files.h>
 | 
					
						
							| 
									
										
										
										
											1995-01-25 23:06:44 +00:00
										 |  |  | #include <Events.h>
 | 
					
						
							| 
									
										
										
										
											1995-08-14 12:36:37 +00:00
										 |  |  | #include <StandardFile.h>
 | 
					
						
							| 
									
										
										
										
											2001-05-12 22:46:35 +00:00
										 |  |  | #else
 | 
					
						
							|  |  |  | #include <Carbon/Carbon.h>
 | 
					
						
							|  |  |  | #endif
 | 
					
						
							| 
									
										
										
										
											1995-01-18 13:53:49 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2001-08-08 13:17:31 +00:00
										 |  |  | #include "pymactoolbox.h"
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											1999-09-30 11:14:49 +00:00
										 |  |  | #ifdef __cplusplus
 | 
					
						
							|  |  |  | 	extern "C" { | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											1997-06-03 15:27:31 +00:00
										 |  |  | /* Scheduler parameters */ | 
					
						
							|  |  |  | typedef struct { | 
					
						
							|  |  |  | 	int		check_interrupt;	/* if true check for command-dot */ | 
					
						
							|  |  |  | 	int		process_events;		/* if nonzero enable evt processing, this mask */ | 
					
						
							|  |  |  | 	int		besocial;		/* Be social, give up CPU now and again */ | 
					
						
							|  |  |  | 	double		check_interval;		/* how often to check */ | 
					
						
							|  |  |  | 	double		bg_yield;		/* yield at most so long when in background */ | 
					
						
							|  |  |  | } PyMacSchedParams; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											1998-07-13 13:39:34 +00:00
										 |  |  | unsigned char *Pstring(char *str);		/* Convert c-string to pascal-string in static buffer */ | 
					
						
							| 
									
										
										
										
											1995-01-22 18:36:13 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											1996-09-04 15:24:59 +00:00
										 |  |  | #ifdef USE_GUSI
 | 
					
						
							|  |  |  | extern int PyMac_ConsoleIsDead;			/* True when exiting */ | 
					
						
							| 
									
										
										
										
											1997-05-23 15:33:20 +00:00
										 |  |  | extern void PyMac_StopGUSISpin(void);		/* Stop eventprocessing during exit() */ | 
					
						
							| 
									
										
										
										
											1996-09-04 15:24:59 +00:00
										 |  |  | #endif
 | 
					
						
							| 
									
										
										
										
											1995-01-27 14:43:25 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											1996-09-06 22:18:40 +00:00
										 |  |  | extern short PyMac_AppRefNum;			/* RefNum of application rsrcfork (from macmain.c) */ | 
					
						
							| 
									
										
										
										
											1997-05-23 15:33:20 +00:00
										 |  |  | extern FSSpec PyMac_ApplicationFSSpec;		/* Application location (from macargv.c) */ | 
					
						
							|  |  |  | extern char PyMac_ApplicationPath[];		/* Application location (from macargv.c) */ | 
					
						
							| 
									
										
										
										
											2000-07-11 19:51:05 +00:00
										 |  |  | extern OSErr PyMac_init_application_location(void);	/* Init the above */ | 
					
						
							|  |  |  | extern int PyMac_GetArgv(char ***, int);	/* Get argc, argv (from macargv.c) */ | 
					
						
							| 
									
										
										
										
											1996-09-06 22:18:40 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											1995-01-25 23:06:44 +00:00
										 |  |  | extern PyObject *PyMac_OSErrException;		/* Exception for OSErr */ | 
					
						
							|  |  |  | PyObject *PyMac_GetOSErrException(void);	/* Initialize & return it */ | 
					
						
							| 
									
										
										
										
											1995-01-22 18:36:13 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2001-05-12 22:46:35 +00:00
										 |  |  | #if !TARGET_API_MAC_OSX
 | 
					
						
							| 
									
										
										
										
											2000-07-11 19:51:05 +00:00
										 |  |  | void PyMac_GetSchedParams(PyMacSchedParams *);	/* Get schedulers params */ | 
					
						
							|  |  |  | void PyMac_SetSchedParams(PyMacSchedParams *);	/* Set schedulers params */ | 
					
						
							|  |  |  | int PyMac_DoYield(int, int);	/* Yield cpu. First arg is maxtime, second ok to call python */ | 
					
						
							| 
									
										
										
										
											2001-05-12 22:46:35 +00:00
										 |  |  | #endif
 | 
					
						
							| 
									
										
										
										
											2000-07-11 19:51:05 +00:00
										 |  |  | int PyMac_HandleEvent(EventRecord *);	/* Handle one event, possibly in Python */ | 
					
						
							|  |  |  | void PyMac_HandleEventIntern(EventRecord *); /* Handle one event internal only */ | 
					
						
							|  |  |  | int PyMac_SetEventHandler(PyObject *);	/* set python-coded event handler */ | 
					
						
							| 
									
										
										
										
											1995-01-22 18:36:13 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2001-05-12 22:46:35 +00:00
										 |  |  | #if !TARGET_API_MAC_OSX
 | 
					
						
							| 
									
										
										
										
											1996-09-06 00:30:45 +00:00
										 |  |  | void PyMac_InitMenuBar(void);			/* Setup menu bar as we want it */ | 
					
						
							| 
									
										
										
										
											1997-06-12 10:51:39 +00:00
										 |  |  | void PyMac_RestoreMenuBar(void);		/* Restore menu bar for ease of exiting */ | 
					
						
							| 
									
										
										
										
											2001-04-25 22:07:42 +00:00
										 |  |  | void PyMac_RaiseConsoleWindow();		/* Bring console window to front, if it exists */ | 
					
						
							| 
									
										
										
										
											2001-05-12 22:46:35 +00:00
										 |  |  | #endif
 | 
					
						
							| 
									
										
										
										
											1997-06-12 15:29:46 +00:00
										 |  |  | int PyMac_FindResourceModule(PyStringObject *, char *, char *); /* Test for 'PYC ' resource in a file */ | 
					
						
							| 
									
										
										
										
											1995-02-15 22:58:33 +00:00
										 |  |  | PyObject * PyMac_LoadResourceModule(char *, char *); /* Load 'PYC ' resource from file */ | 
					
						
							| 
									
										
										
										
											1998-07-13 13:39:34 +00:00
										 |  |  | int PyMac_FindCodeResourceModule(PyStringObject *, char *, char *); /* Test for 'PYD ' resource in a file */ | 
					
						
							|  |  |  | PyObject * PyMac_LoadCodeResourceModule(char *, char *); /* Load 'PYD ' resource from file */ | 
					
						
							| 
									
										
										
										
											2000-07-03 23:53:40 +00:00
										 |  |  | struct filedescr *PyMac_FindModuleExtension(char *, size_t *, char *); /* Look for module in single folder */ | 
					
						
							| 
									
										
										
										
											1995-02-15 22:58:33 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											1995-02-18 14:59:48 +00:00
										 |  |  | void PyMac_InitApplet(void);			/* Initialize and run an Applet */ | 
					
						
							| 
									
										
										
										
											1997-01-15 15:49:08 +00:00
										 |  |  | void PyMac_Initialize(void);			/* Initialize function for embedding Python */ | 
					
						
							| 
									
										
										
										
											1998-04-15 14:12:45 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2000-04-21 23:53:37 +00:00
										 |  |  | #ifdef USE_GUSI2
 | 
					
						
							|  |  |  | short PyMac_OpenPrefFile(void);			/* From macgetpath.c, open and return preference file */ | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2001-07-08 22:07:23 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											1998-04-15 14:12:45 +00:00
										 |  |  | /* From macfiletype.c: */ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2000-07-11 21:16:03 +00:00
										 |  |  | long PyMac_getfiletype(char *);			/* Get file type */ | 
					
						
							|  |  |  | int PyMac_setfiletype(char *, long, long);		/* Set file creator and type */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* from macmain.c: */ | 
					
						
							|  |  |  | void PyMac_Exit(int); | 
					
						
							|  |  |  | void PyMac_InitApplication(void); | 
					
						
							| 
									
										
										
										
											2000-10-19 22:02:16 +00:00
										 |  |  | void PyMac_OutputSeen(void); | 
					
						
							| 
									
										
										
										
											2001-02-11 01:08:04 +00:00
										 |  |  | void PyMac_OutputNotSeen(void); | 
					
						
							|  |  |  | int PyMac_GetDelayConsoleFlag(void); | 
					
						
							| 
									
										
										
										
											2000-07-11 21:16:03 +00:00
										 |  |  | #ifdef USE_MAC_APPLET_SUPPORT
 | 
					
						
							|  |  |  | void PyMac_InitApplet(void); | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* from macgetargv: */ | 
					
						
							|  |  |  | OSErr PyMac_init_process_location(void); | 
					
						
							|  |  |  | char *	strdup(const char *str); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2001-10-08 13:16:39 +00:00
										 |  |  | #ifdef USE_GUSI2
 | 
					
						
							|  |  |  | /* from pyGUSISIOUX.cp */ | 
					
						
							|  |  |  | typedef long (*PyWriteHandler)(char *buffer, long n); | 
					
						
							|  |  |  | typedef long (*PyReadHandler)(char *buffer, long n); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* Override routines that normally reads and writes to the
 | 
					
						
							|  |  |  | ** SIOUX console window. Intended for embedding applications | 
					
						
							|  |  |  | ** that want to forestall a Python console window ever showing up. | 
					
						
							|  |  |  | */ | 
					
						
							|  |  |  | void PyMac_SetConsoleHandler(PyReadHandler stdinH, PyWriteHandler stdoutH, | 
					
						
							|  |  |  | 			     PyWriteHandler stderrH); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* Courtesy console handlers that drop all output and return
 | 
					
						
							|  |  |  | ** 0 on reads. | 
					
						
							|  |  |  | */ | 
					
						
							|  |  |  | long PyMac_DummyReadHandler(char *, long); | 
					
						
							|  |  |  | long PyMac_DummyWriteHandler(char *, long); | 
					
						
							|  |  |  | #endif /* USE_GUSI2 */
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											1999-09-30 11:14:49 +00:00
										 |  |  | #ifdef __cplusplus
 | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | #endif
 | 
					
						
							| 
									
										
										
										
											2002-09-10 12:32:47 +00:00
										 |  |  | #endif
 |