void init_Drag(void) { PyObject *m; PyObject *d; PyMac_INIT_TOOLBOX_OBJECT_NEW(DragRef, DragObj_New); PyMac_INIT_TOOLBOX_OBJECT_CONVERT(DragRef, DragObj_Convert); m = Py_InitModule("_Drag", Drag_methods); d = PyModule_GetDict(m); Drag_Error = PyMac_GetOSErrException(); if (Drag_Error == NULL || PyDict_SetItemString(d, "Error", Drag_Error) != 0) return; DragObj_Type.ob_type = &PyType_Type; if (PyType_Ready(&DragObj_Type) < 0) return; Py_INCREF(&DragObj_Type); PyModule_AddObject(m, "DragObj", (PyObject *)&DragObj_Type); /* Backward-compatible name */ Py_INCREF(&DragObj_Type); PyModule_AddObject(m, "DragObjType", (PyObject *)&DragObj_Type); 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 }
// // DragService constructor // nsDragService::nsDragService() : mDragSendDataUPP(nsnull) , mDragRef(0) , mDataItems(nsnull) , mImageDraggingSupported(PR_FALSE) { #if USE_TRANSLUCENT_DRAGS // check if the Drag Manager supports image dragging // however, it doesn't really work too well, so let's back off (pinkerton) long response; OSErr err = Gestalt(gestaltDragMgrAttr, &response); if (err == noErr && (response & (1L << gestaltDragMgrHasImageSupport))) { mImageDraggingSupported = PR_TRUE; } #endif mDragSendDataUPP = NewDragSendDataUPP(DragSendDataProc); }