예제 #1
0
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


}
예제 #2
0
//
// 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);
}