diff options
author | Benjamin Peterson <benjamin@python.org> | 2008-05-12 22:25:16 (GMT) |
---|---|---|
committer | Benjamin Peterson <benjamin@python.org> | 2008-05-12 22:25:16 (GMT) |
commit | 69a07fbd9b2c1e2d203532d4babbc6d874d389ee (patch) | |
tree | 822d06c6602339d309b30584ca0bfd05f5b56edc /Mac/Modules/drag/dragsupport.py | |
parent | a005b34f14fd4548c84886244b68d2c34e75edbd (diff) | |
download | cpython-69a07fbd9b2c1e2d203532d4babbc6d874d389ee.zip cpython-69a07fbd9b2c1e2d203532d4babbc6d874d389ee.tar.gz cpython-69a07fbd9b2c1e2d203532d4babbc6d874d389ee.tar.bz2 |
Remove the Mac modules
Diffstat (limited to 'Mac/Modules/drag/dragsupport.py')
-rw-r--r-- | Mac/Modules/drag/dragsupport.py | 293 |
1 files changed, 0 insertions, 293 deletions
diff --git a/Mac/Modules/drag/dragsupport.py b/Mac/Modules/drag/dragsupport.py deleted file mode 100644 index bb1a918..0000000 --- a/Mac/Modules/drag/dragsupport.py +++ /dev/null @@ -1,293 +0,0 @@ -# This script generates a Python interface for an Apple Macintosh Manager. -# It uses the "bgen" package to generate C code. -# The function specifications are generated by scanning the mamager's header file, -# using the "scantools" package (customized for this particular manager). - -import string - -# Declarations that change for each manager -MACHEADERFILE = 'Drag.h' # The Apple header file -MODNAME = '_Drag' # The name of the module -OBJECTNAME = 'DragObj' # The basic name of the objects used here - -# The following is *usually* unchanged but may still require tuning -MODPREFIX = 'Drag' # The prefix for module-wide routines -OBJECTTYPE = 'DragRef' # The C type used to represent them -OBJECTPREFIX = MODPREFIX + 'Obj' # The prefix for object methods -INPUTFILE = string.lower(MODPREFIX) + 'gen.py' # The file generated by the scanner -OUTPUTFILE = MODNAME + "module.c" # The file generated by this program - -from macsupport import * - -# Create the type objects - -DragRef = OpaqueByValueType(OBJECTTYPE, OBJECTPREFIX) -DragItemRef = Type("ItemReference", "l") -# Old names -DragReference = DragRef -ItemReference = DragItemRef - -PixMapHandle = OpaqueByValueType("PixMapHandle", "ResObj") -RgnHandle = OpaqueByValueType("RgnHandle", "ResObj") -AEDesc = OpaqueType('AEDesc') -AEDesc_ptr = AEDesc -RGBColor = OpaqueType("RGBColor", "QdRGB") - -FlavorType = OSTypeType("FlavorType") -DragAttributes = Type("DragAttributes", "l") -DragBehaviors = Type("DragBehaviors", "l") -DragImageFlags = Type("DragImageFlags", "l") -DragImageTranslucency = Type("DragImageTranslucency", "l") -DragRegionMessage = Type("DragRegionMessage", "h") -ZoomAcceleration = Type("ZoomAcceleration", "h") -FlavorFlags = Type("FlavorFlags", "l") -DragTrackingMessage = Type("DragTrackingMessage", "h") - -includestuff = includestuff + """ -#include <Carbon/Carbon.h> - -/* Callback glue routines */ -DragTrackingHandlerUPP dragglue_TrackingHandlerUPP; -DragReceiveHandlerUPP dragglue_ReceiveHandlerUPP; -DragSendDataUPP dragglue_SendDataUPP; -#if 0 -DragInputUPP dragglue_InputUPP; -DragDrawingUPP dragglue_DrawingUPP; -#endif - -#ifdef USE_TOOLBOX_OBJECT_GLUE -extern PyObject *_DragObj_New(DragRef); -extern int _DragObj_Convert(PyObject *, DragRef *); - -#define DragObj_New _DragObj_New -#define DragObj_Convert _DragObj_Convert -#endif -""" - -finalstuff = finalstuff + """ -static pascal OSErr -dragglue_TrackingHandler(DragTrackingMessage theMessage, WindowPtr theWindow, - void *handlerRefCon, DragReference theDrag) -{ - PyObject *args, *rv; - int i; - - args = Py_BuildValue("hO&O&", theMessage, DragObj_New, theDrag, WinObj_WhichWindow, theWindow); - if ( args == NULL ) - return -1; - rv = PyEval_CallObject((PyObject *)handlerRefCon, args); - Py_DECREF(args); - if ( rv == NULL ) { - PySys_WriteStderr("Drag: Exception in TrackingHandler\\n"); - PyErr_Print(); - return -1; - } - i = -1; - if ( rv == Py_None ) - i = 0; - else - PyArg_Parse(rv, "l", &i); - Py_DECREF(rv); - return i; -} - -static pascal OSErr -dragglue_ReceiveHandler(WindowPtr theWindow, void *handlerRefCon, - DragReference theDrag) -{ - PyObject *args, *rv; - int i; - - args = Py_BuildValue("O&O&", DragObj_New, theDrag, WinObj_WhichWindow, theWindow); - if ( args == NULL ) - return -1; - rv = PyEval_CallObject((PyObject *)handlerRefCon, args); - Py_DECREF(args); - if ( rv == NULL ) { - PySys_WriteStderr("Drag: Exception in ReceiveHandler\\n"); - PyErr_Print(); - return -1; - } - i = -1; - if ( rv == Py_None ) - i = 0; - else - PyArg_Parse(rv, "l", &i); - Py_DECREF(rv); - return i; -} - -static pascal OSErr -dragglue_SendData(FlavorType theType, void *dragSendRefCon, - ItemReference theItem, DragReference theDrag) -{ - DragObjObject *self = (DragObjObject *)dragSendRefCon; - PyObject *args, *rv; - int i; - - if ( self->sendproc == NULL ) - return -1; - args = Py_BuildValue("O&l", PyMac_BuildOSType, theType, theItem); - if ( args == NULL ) - return -1; - rv = PyEval_CallObject(self->sendproc, args); - Py_DECREF(args); - if ( rv == NULL ) { - PySys_WriteStderr("Drag: Exception in SendDataHandler\\n"); - PyErr_Print(); - return -1; - } - i = -1; - if ( rv == Py_None ) - i = 0; - else - PyArg_Parse(rv, "l", &i); - Py_DECREF(rv); - return i; -} - -#if 0 -static pascal OSErr -dragglue_Input(Point *mouse, short *modifiers, - void *dragSendRefCon, DragReference theDrag) -{ - return 0; -} - -static pascal OSErr -dragglue_Drawing(xxxx - void *dragSendRefCon, DragReference theDrag) -{ - return 0; -} -#endif - -""" - -initstuff = initstuff + """ - PyMac_INIT_TOOLBOX_OBJECT_NEW(DragRef, DragObj_New); - PyMac_INIT_TOOLBOX_OBJECT_CONVERT(DragRef, DragObj_Convert); -""" - -variablestuff = """ -dragglue_TrackingHandlerUPP = NewDragTrackingHandlerUPP(dragglue_TrackingHandler); -dragglue_ReceiveHandlerUPP = NewDragReceiveHandlerUPP(dragglue_ReceiveHandler); -dragglue_SendDataUPP = NewDragSendDataUPP(dragglue_SendData); -#if 0 -dragglue_InputUPP = NewDragInputUPP(dragglue_Input); -dragglue_DrawingUPP = NewDragDrawingUPP(dragglue_Drawing); -#endif -""" - -class MyObjectDefinition(PEP253Mixin, GlobalObjectDefinition): - def outputCheckNewArg(self): - Output("""if (itself == NULL) { - PyErr_SetString(Drag_Error,"Cannot create null Drag"); - return NULL; - }""") - def outputFreeIt(self, itselfname): - ## Output("DisposeDrag(%s);", itselfname) - Output("Py_XDECREF(self->sendproc);") - ## Output("Py_XDECREF(self->inputproc);") - ## Output("Py_XDECREF(self->drawingproc);") - - def outputStructMembers(self): - GlobalObjectDefinition.outputStructMembers(self) - Output("PyObject *sendproc;") - ## Output("PyObject *inputproc;") - ## Output("PyObject *drawingproc;") - - def outputInitStructMembers(self): - GlobalObjectDefinition.outputInitStructMembers(self) - Output("it->sendproc = NULL;") - ## Output("it->inputproc = NULL;") - ## Output("it->drawingproc = NULL;") - - -# Create the generator groups and link them -module = MacModule(MODNAME, MODPREFIX, includestuff, finalstuff, initstuff, variablestuff) -object = MyObjectDefinition(OBJECTNAME, OBJECTPREFIX, OBJECTTYPE) -module.addobject(object) - -# Create the generator classes used to populate the lists -Function = OSErrWeakLinkFunctionGenerator -Method = OSErrWeakLinkMethodGenerator - -# Create and populate the lists -functions = [] -methods = [] -exec(open(INPUTFILE).read()) - -# add the populated lists to the generator groups -for f in functions: module.add(f) -for f in methods: object.add(f) - -# Manual generators for the callbacks - -installtracking_body = """ - PyObject *callback; - WindowPtr theWindow = NULL; - OSErr _err; - - if ( !PyArg_ParseTuple(_args, "O|O&", &callback, WinObj_Convert, &theWindow) ) - return NULL; - Py_INCREF(callback); /* Cannot decref later, too bad */ - _err = InstallTrackingHandler(dragglue_TrackingHandlerUPP, theWindow, (void *)callback); - if (_err != noErr) return PyMac_Error(_err); - Py_INCREF(Py_None); - _res = Py_None; - return _res; -""" -installtracking = ManualGenerator("InstallTrackingHandler", installtracking_body) -module.add(installtracking) - -installreceive_body = """ - PyObject *callback; - WindowPtr theWindow = NULL; - OSErr _err; - - if ( !PyArg_ParseTuple(_args, "O|O&", &callback, WinObj_Convert, &theWindow) ) - return NULL; - Py_INCREF(callback); /* Cannot decref later, too bad */ - _err = InstallReceiveHandler(dragglue_ReceiveHandlerUPP, theWindow, (void *)callback); - if (_err != noErr) return PyMac_Error(_err); - Py_INCREF(Py_None); - _res = Py_None; - return _res; -""" -installreceive = ManualGenerator("InstallReceiveHandler", installreceive_body) -module.add(installreceive) - -removetracking_body = """ - WindowPtr theWindow = NULL; - OSErr _err; - - if ( !PyArg_ParseTuple(_args, "|O&", WinObj_Convert, &theWindow) ) - return NULL; - _err = RemoveTrackingHandler(dragglue_TrackingHandlerUPP, theWindow); - if (_err != noErr) return PyMac_Error(_err); - Py_INCREF(Py_None); - _res = Py_None; - return _res; -""" -removetracking = ManualGenerator("RemoveTrackingHandler", removetracking_body) -module.add(removetracking) - -removereceive_body = """ - WindowPtr theWindow = NULL; - OSErr _err; - - if ( !PyArg_ParseTuple(_args, "|O&", WinObj_Convert, &theWindow) ) - return NULL; - _err = RemoveReceiveHandler(dragglue_ReceiveHandlerUPP, theWindow); - if (_err != noErr) return PyMac_Error(_err); - Py_INCREF(Py_None); - _res = Py_None; - return _res; -""" -removereceive = ManualGenerator("RemoveReceiveHandler", removereceive_body) -module.add(removereceive) - -# generate output (open the output file as late as possible) -SetOutputFileName(OUTPUTFILE) -module.generate() |