summaryrefslogtreecommitdiffstats
path: root/Mac/Modules/drag
diff options
context:
space:
mode:
Diffstat (limited to 'Mac/Modules/drag')
-rw-r--r--Mac/Modules/drag/Dragmodule.c515
-rw-r--r--Mac/Modules/drag/dragsupport.py24
2 files changed, 303 insertions, 236 deletions
diff --git a/Mac/Modules/drag/Dragmodule.c b/Mac/Modules/drag/Dragmodule.c
index 716d2d5..e3801b6 100644
--- a/Mac/Modules/drag/Dragmodule.c
+++ b/Mac/Modules/drag/Dragmodule.c
@@ -29,12 +29,12 @@ PyTypeObject DragObj_Type;
typedef struct DragObjObject {
PyObject_HEAD
- DragReference ob_itself;
+ DragRef ob_itself;
PyObject *sendproc;
} DragObjObject;
PyObject *DragObj_New(itself)
- DragReference itself;
+ DragRef itself;
{
DragObjObject *it;
if (itself == NULL) {
@@ -49,7 +49,7 @@ PyObject *DragObj_New(itself)
}
DragObj_Convert(v, p_itself)
PyObject *v;
- DragReference *p_itself;
+ DragRef *p_itself;
{
if (!DragObj_Check(v))
{
@@ -67,41 +67,104 @@ static void DragObj_dealloc(self)
PyMem_DEL(self);
}
-static PyObject *DragObj_DisposeDrag(_self, _args)
- DragObjObject *_self;
+static PyMethodDef DragObj_methods[] = {
+ {NULL, NULL, 0}
+};
+
+PyMethodChain DragObj_chain = { DragObj_methods, NULL };
+
+static PyObject *DragObj_getattr(self, name)
+ DragObjObject *self;
+ char *name;
+{
+ return Py_FindMethodInChain(&DragObj_chain, (PyObject *)self, name);
+}
+
+#define DragObj_setattr NULL
+
+#define DragObj_compare NULL
+
+#define DragObj_repr NULL
+
+#define DragObj_hash NULL
+
+PyTypeObject DragObj_Type = {
+ PyObject_HEAD_INIT(&PyType_Type)
+ 0, /*ob_size*/
+ "DragObj", /*tp_name*/
+ sizeof(DragObjObject), /*tp_basicsize*/
+ 0, /*tp_itemsize*/
+ /* methods */
+ (destructor) DragObj_dealloc, /*tp_dealloc*/
+ 0, /*tp_print*/
+ (getattrfunc) DragObj_getattr, /*tp_getattr*/
+ (setattrfunc) DragObj_setattr, /*tp_setattr*/
+ (cmpfunc) DragObj_compare, /*tp_compare*/
+ (reprfunc) DragObj_repr, /*tp_repr*/
+ (PyNumberMethods *)0, /* tp_as_number */
+ (PySequenceMethods *)0, /* tp_as_sequence */
+ (PyMappingMethods *)0, /* tp_as_mapping */
+ (hashfunc) DragObj_hash, /*tp_hash*/
+};
+
+/* -------------------- End object type DragObj --------------------- */
+
+
+static PyObject *Drag_NewDrag(_self, _args)
+ PyObject *_self;
PyObject *_args;
{
PyObject *_res = NULL;
OSErr _err;
+ DragRef theDrag;
if (!PyArg_ParseTuple(_args, ""))
return NULL;
- _err = DisposeDrag(_self->ob_itself);
+ _err = NewDrag(&theDrag);
+ if (_err != noErr) return PyMac_Error(_err);
+ _res = Py_BuildValue("O&",
+ DragObj_New, theDrag);
+ return _res;
+}
+
+static PyObject *Drag_DisposeDrag(_self, _args)
+ PyObject *_self;
+ PyObject *_args;
+{
+ PyObject *_res = NULL;
+ OSErr _err;
+ DragRef theDrag;
+ if (!PyArg_ParseTuple(_args, "O&",
+ DragObj_Convert, &theDrag))
+ return NULL;
+ _err = DisposeDrag(theDrag);
if (_err != noErr) return PyMac_Error(_err);
Py_INCREF(Py_None);
_res = Py_None;
return _res;
}
-static PyObject *DragObj_AddDragItemFlavor(_self, _args)
- DragObjObject *_self;
+static PyObject *Drag_AddDragItemFlavor(_self, _args)
+ PyObject *_self;
PyObject *_args;
{
PyObject *_res = NULL;
OSErr _err;
+ DragRef theDrag;
ItemReference theItemRef;
FlavorType theType;
char *dataPtr__in__;
long dataPtr__len__;
int dataPtr__in_len__;
FlavorFlags theFlags;
- if (!PyArg_ParseTuple(_args, "lO&z#l",
+ if (!PyArg_ParseTuple(_args, "O&lO&z#l",
+ DragObj_Convert, &theDrag,
&theItemRef,
PyMac_GetOSType, &theType,
&dataPtr__in__, &dataPtr__in_len__,
&theFlags))
return NULL;
dataPtr__len__ = dataPtr__in_len__;
- _err = AddDragItemFlavor(_self->ob_itself,
+ _err = AddDragItemFlavor(theDrag,
theItemRef,
theType,
dataPtr__in__, dataPtr__len__,
@@ -113,26 +176,28 @@ static PyObject *DragObj_AddDragItemFlavor(_self, _args)
return _res;
}
-static PyObject *DragObj_SetDragItemFlavorData(_self, _args)
- DragObjObject *_self;
+static PyObject *Drag_SetDragItemFlavorData(_self, _args)
+ PyObject *_self;
PyObject *_args;
{
PyObject *_res = NULL;
OSErr _err;
+ DragRef theDrag;
ItemReference theItemRef;
FlavorType theType;
char *dataPtr__in__;
long dataPtr__len__;
int dataPtr__in_len__;
UInt32 dataOffset;
- if (!PyArg_ParseTuple(_args, "lO&z#l",
+ if (!PyArg_ParseTuple(_args, "O&lO&z#l",
+ DragObj_Convert, &theDrag,
&theItemRef,
PyMac_GetOSType, &theType,
&dataPtr__in__, &dataPtr__in_len__,
&dataOffset))
return NULL;
dataPtr__len__ = dataPtr__in_len__;
- _err = SetDragItemFlavorData(_self->ob_itself,
+ _err = SetDragItemFlavorData(theDrag,
theItemRef,
theType,
dataPtr__in__, dataPtr__len__,
@@ -144,23 +209,25 @@ static PyObject *DragObj_SetDragItemFlavorData(_self, _args)
return _res;
}
-static PyObject *DragObj_SetDragImage(_self, _args)
- DragObjObject *_self;
+static PyObject *Drag_SetDragImage(_self, _args)
+ PyObject *_self;
PyObject *_args;
{
PyObject *_res = NULL;
OSErr _err;
+ DragRef theDrag;
PixMapHandle imagePixMap;
RgnHandle imageRgn;
Point imageOffsetPt;
DragImageFlags theImageFlags;
- if (!PyArg_ParseTuple(_args, "O&O&O&l",
+ if (!PyArg_ParseTuple(_args, "O&O&O&O&l",
+ DragObj_Convert, &theDrag,
ResObj_Convert, &imagePixMap,
ResObj_Convert, &imageRgn,
PyMac_GetPoint, &imageOffsetPt,
&theImageFlags))
return NULL;
- _err = SetDragImage(_self->ob_itself,
+ _err = SetDragImage(theDrag,
imagePixMap,
imageRgn,
imageOffsetPt,
@@ -171,19 +238,44 @@ static PyObject *DragObj_SetDragImage(_self, _args)
return _res;
}
-static PyObject *DragObj_TrackDrag(_self, _args)
- DragObjObject *_self;
+static PyObject *Drag_ChangeDragBehaviors(_self, _args)
+ PyObject *_self;
+ PyObject *_args;
+{
+ PyObject *_res = NULL;
+ OSErr _err;
+ DragRef theDrag;
+ DragBehaviors inBehaviorsToSet;
+ DragBehaviors inBehaviorsToClear;
+ if (!PyArg_ParseTuple(_args, "O&ll",
+ DragObj_Convert, &theDrag,
+ &inBehaviorsToSet,
+ &inBehaviorsToClear))
+ return NULL;
+ _err = ChangeDragBehaviors(theDrag,
+ inBehaviorsToSet,
+ inBehaviorsToClear);
+ if (_err != noErr) return PyMac_Error(_err);
+ Py_INCREF(Py_None);
+ _res = Py_None;
+ return _res;
+}
+
+static PyObject *Drag_TrackDrag(_self, _args)
+ PyObject *_self;
PyObject *_args;
{
PyObject *_res = NULL;
OSErr _err;
+ DragRef theDrag;
EventRecord theEvent;
RgnHandle theRegion;
- if (!PyArg_ParseTuple(_args, "O&O&",
+ if (!PyArg_ParseTuple(_args, "O&O&O&",
+ DragObj_Convert, &theDrag,
PyMac_GetEventRecord, &theEvent,
ResObj_Convert, &theRegion))
return NULL;
- _err = TrackDrag(_self->ob_itself,
+ _err = TrackDrag(theDrag,
&theEvent,
theRegion);
if (_err != noErr) return PyMac_Error(_err);
@@ -192,16 +284,18 @@ static PyObject *DragObj_TrackDrag(_self, _args)
return _res;
}
-static PyObject *DragObj_CountDragItems(_self, _args)
- DragObjObject *_self;
+static PyObject *Drag_CountDragItems(_self, _args)
+ PyObject *_self;
PyObject *_args;
{
PyObject *_res = NULL;
OSErr _err;
+ DragRef theDrag;
UInt16 numItems;
- if (!PyArg_ParseTuple(_args, ""))
+ if (!PyArg_ParseTuple(_args, "O&",
+ DragObj_Convert, &theDrag))
return NULL;
- _err = CountDragItems(_self->ob_itself,
+ _err = CountDragItems(theDrag,
&numItems);
if (_err != noErr) return PyMac_Error(_err);
_res = Py_BuildValue("H",
@@ -209,18 +303,20 @@ static PyObject *DragObj_CountDragItems(_self, _args)
return _res;
}
-static PyObject *DragObj_GetDragItemReferenceNumber(_self, _args)
- DragObjObject *_self;
+static PyObject *Drag_GetDragItemReferenceNumber(_self, _args)
+ PyObject *_self;
PyObject *_args;
{
PyObject *_res = NULL;
OSErr _err;
+ DragRef theDrag;
UInt16 index;
ItemReference theItemRef;
- if (!PyArg_ParseTuple(_args, "H",
+ if (!PyArg_ParseTuple(_args, "O&H",
+ DragObj_Convert, &theDrag,
&index))
return NULL;
- _err = GetDragItemReferenceNumber(_self->ob_itself,
+ _err = GetDragItemReferenceNumber(theDrag,
index,
&theItemRef);
if (_err != noErr) return PyMac_Error(_err);
@@ -229,18 +325,20 @@ static PyObject *DragObj_GetDragItemReferenceNumber(_self, _args)
return _res;
}
-static PyObject *DragObj_CountDragItemFlavors(_self, _args)
- DragObjObject *_self;
+static PyObject *Drag_CountDragItemFlavors(_self, _args)
+ PyObject *_self;
PyObject *_args;
{
PyObject *_res = NULL;
OSErr _err;
+ DragRef theDrag;
ItemReference theItemRef;
UInt16 numFlavors;
- if (!PyArg_ParseTuple(_args, "l",
+ if (!PyArg_ParseTuple(_args, "O&l",
+ DragObj_Convert, &theDrag,
&theItemRef))
return NULL;
- _err = CountDragItemFlavors(_self->ob_itself,
+ _err = CountDragItemFlavors(theDrag,
theItemRef,
&numFlavors);
if (_err != noErr) return PyMac_Error(_err);
@@ -249,20 +347,22 @@ static PyObject *DragObj_CountDragItemFlavors(_self, _args)
return _res;
}
-static PyObject *DragObj_GetFlavorType(_self, _args)
- DragObjObject *_self;
+static PyObject *Drag_GetFlavorType(_self, _args)
+ PyObject *_self;
PyObject *_args;
{
PyObject *_res = NULL;
OSErr _err;
+ DragRef theDrag;
ItemReference theItemRef;
UInt16 index;
FlavorType theType;
- if (!PyArg_ParseTuple(_args, "lH",
+ if (!PyArg_ParseTuple(_args, "O&lH",
+ DragObj_Convert, &theDrag,
&theItemRef,
&index))
return NULL;
- _err = GetFlavorType(_self->ob_itself,
+ _err = GetFlavorType(theDrag,
theItemRef,
index,
&theType);
@@ -272,20 +372,22 @@ static PyObject *DragObj_GetFlavorType(_self, _args)
return _res;
}
-static PyObject *DragObj_GetFlavorFlags(_self, _args)
- DragObjObject *_self;
+static PyObject *Drag_GetFlavorFlags(_self, _args)
+ PyObject *_self;
PyObject *_args;
{
PyObject *_res = NULL;
OSErr _err;
+ DragRef theDrag;
ItemReference theItemRef;
FlavorType theType;
FlavorFlags theFlags;
- if (!PyArg_ParseTuple(_args, "lO&",
+ if (!PyArg_ParseTuple(_args, "O&lO&",
+ DragObj_Convert, &theDrag,
&theItemRef,
PyMac_GetOSType, &theType))
return NULL;
- _err = GetFlavorFlags(_self->ob_itself,
+ _err = GetFlavorFlags(theDrag,
theItemRef,
theType,
&theFlags);
@@ -295,20 +397,22 @@ static PyObject *DragObj_GetFlavorFlags(_self, _args)
return _res;
}
-static PyObject *DragObj_GetFlavorDataSize(_self, _args)
- DragObjObject *_self;
+static PyObject *Drag_GetFlavorDataSize(_self, _args)
+ PyObject *_self;
PyObject *_args;
{
PyObject *_res = NULL;
OSErr _err;
+ DragRef theDrag;
ItemReference theItemRef;
FlavorType theType;
Size dataSize;
- if (!PyArg_ParseTuple(_args, "lO&",
+ if (!PyArg_ParseTuple(_args, "O&lO&",
+ DragObj_Convert, &theDrag,
&theItemRef,
PyMac_GetOSType, &theType))
return NULL;
- _err = GetFlavorDataSize(_self->ob_itself,
+ _err = GetFlavorDataSize(theDrag,
theItemRef,
theType,
&dataSize);
@@ -318,19 +422,21 @@ static PyObject *DragObj_GetFlavorDataSize(_self, _args)
return _res;
}
-static PyObject *DragObj_GetFlavorData(_self, _args)
- DragObjObject *_self;
+static PyObject *Drag_GetFlavorData(_self, _args)
+ PyObject *_self;
PyObject *_args;
{
PyObject *_res = NULL;
OSErr _err;
+ DragRef theDrag;
ItemReference theItemRef;
FlavorType theType;
char *dataPtr__out__;
long dataPtr__len__;
int dataPtr__in_len__;
UInt32 dataOffset;
- if (!PyArg_ParseTuple(_args, "lO&il",
+ if (!PyArg_ParseTuple(_args, "O&lO&il",
+ DragObj_Convert, &theDrag,
&theItemRef,
PyMac_GetOSType, &theType,
&dataPtr__in_len__,
@@ -342,7 +448,7 @@ static PyObject *DragObj_GetFlavorData(_self, _args)
goto dataPtr__error__;
}
dataPtr__len__ = dataPtr__in_len__;
- _err = GetFlavorData(_self->ob_itself,
+ _err = GetFlavorData(theDrag,
theItemRef,
theType,
dataPtr__out__, &dataPtr__len__,
@@ -355,18 +461,20 @@ static PyObject *DragObj_GetFlavorData(_self, _args)
return _res;
}
-static PyObject *DragObj_GetDragItemBounds(_self, _args)
- DragObjObject *_self;
+static PyObject *Drag_GetDragItemBounds(_self, _args)
+ PyObject *_self;
PyObject *_args;
{
PyObject *_res = NULL;
OSErr _err;
+ DragRef theDrag;
ItemReference theItemRef;
Rect itemBounds;
- if (!PyArg_ParseTuple(_args, "l",
+ if (!PyArg_ParseTuple(_args, "O&l",
+ DragObj_Convert, &theDrag,
&theItemRef))
return NULL;
- _err = GetDragItemBounds(_self->ob_itself,
+ _err = GetDragItemBounds(theDrag,
theItemRef,
&itemBounds);
if (_err != noErr) return PyMac_Error(_err);
@@ -375,19 +483,21 @@ static PyObject *DragObj_GetDragItemBounds(_self, _args)
return _res;
}
-static PyObject *DragObj_SetDragItemBounds(_self, _args)
- DragObjObject *_self;
+static PyObject *Drag_SetDragItemBounds(_self, _args)
+ PyObject *_self;
PyObject *_args;
{
PyObject *_res = NULL;
OSErr _err;
+ DragRef theDrag;
ItemReference theItemRef;
Rect itemBounds;
- if (!PyArg_ParseTuple(_args, "lO&",
+ if (!PyArg_ParseTuple(_args, "O&lO&",
+ DragObj_Convert, &theDrag,
&theItemRef,
PyMac_GetRect, &itemBounds))
return NULL;
- _err = SetDragItemBounds(_self->ob_itself,
+ _err = SetDragItemBounds(theDrag,
theItemRef,
&itemBounds);
if (_err != noErr) return PyMac_Error(_err);
@@ -396,16 +506,18 @@ static PyObject *DragObj_SetDragItemBounds(_self, _args)
return _res;
}
-static PyObject *DragObj_GetDropLocation(_self, _args)
- DragObjObject *_self;
+static PyObject *Drag_GetDropLocation(_self, _args)
+ PyObject *_self;
PyObject *_args;
{
PyObject *_res = NULL;
OSErr _err;
+ DragRef theDrag;
AEDesc dropLocation;
- if (!PyArg_ParseTuple(_args, ""))
+ if (!PyArg_ParseTuple(_args, "O&",
+ DragObj_Convert, &theDrag))
return NULL;
- _err = GetDropLocation(_self->ob_itself,
+ _err = GetDropLocation(theDrag,
&dropLocation);
if (_err != noErr) return PyMac_Error(_err);
_res = Py_BuildValue("O&",
@@ -413,17 +525,19 @@ static PyObject *DragObj_GetDropLocation(_self, _args)
return _res;
}
-static PyObject *DragObj_SetDropLocation(_self, _args)
- DragObjObject *_self;
+static PyObject *Drag_SetDropLocation(_self, _args)
+ PyObject *_self;
PyObject *_args;
{
PyObject *_res = NULL;
OSErr _err;
+ DragRef theDrag;
AEDesc dropLocation;
- if (!PyArg_ParseTuple(_args, "O&",
+ if (!PyArg_ParseTuple(_args, "O&O&",
+ DragObj_Convert, &theDrag,
AEDesc_Convert, &dropLocation))
return NULL;
- _err = SetDropLocation(_self->ob_itself,
+ _err = SetDropLocation(theDrag,
&dropLocation);
if (_err != noErr) return PyMac_Error(_err);
Py_INCREF(Py_None);
@@ -431,16 +545,18 @@ static PyObject *DragObj_SetDropLocation(_self, _args)
return _res;
}
-static PyObject *DragObj_GetDragAttributes(_self, _args)
- DragObjObject *_self;
+static PyObject *Drag_GetDragAttributes(_self, _args)
+ PyObject *_self;
PyObject *_args;
{
PyObject *_res = NULL;
OSErr _err;
+ DragRef theDrag;
DragAttributes flags;
- if (!PyArg_ParseTuple(_args, ""))
+ if (!PyArg_ParseTuple(_args, "O&",
+ DragObj_Convert, &theDrag))
return NULL;
- _err = GetDragAttributes(_self->ob_itself,
+ _err = GetDragAttributes(theDrag,
&flags);
if (_err != noErr) return PyMac_Error(_err);
_res = Py_BuildValue("l",
@@ -448,17 +564,19 @@ static PyObject *DragObj_GetDragAttributes(_self, _args)
return _res;
}
-static PyObject *DragObj_GetDragMouse(_self, _args)
- DragObjObject *_self;
+static PyObject *Drag_GetDragMouse(_self, _args)
+ PyObject *_self;
PyObject *_args;
{
PyObject *_res = NULL;
OSErr _err;
+ DragRef theDrag;
Point mouse;
Point globalPinnedMouse;
- if (!PyArg_ParseTuple(_args, ""))
+ if (!PyArg_ParseTuple(_args, "O&",
+ DragObj_Convert, &theDrag))
return NULL;
- _err = GetDragMouse(_self->ob_itself,
+ _err = GetDragMouse(theDrag,
&mouse,
&globalPinnedMouse);
if (_err != noErr) return PyMac_Error(_err);
@@ -468,17 +586,19 @@ static PyObject *DragObj_GetDragMouse(_self, _args)
return _res;
}
-static PyObject *DragObj_SetDragMouse(_self, _args)
- DragObjObject *_self;
+static PyObject *Drag_SetDragMouse(_self, _args)
+ PyObject *_self;
PyObject *_args;
{
PyObject *_res = NULL;
OSErr _err;
+ DragRef theDrag;
Point globalPinnedMouse;
- if (!PyArg_ParseTuple(_args, "O&",
+ if (!PyArg_ParseTuple(_args, "O&O&",
+ DragObj_Convert, &theDrag,
PyMac_GetPoint, &globalPinnedMouse))
return NULL;
- _err = SetDragMouse(_self->ob_itself,
+ _err = SetDragMouse(theDrag,
globalPinnedMouse);
if (_err != noErr) return PyMac_Error(_err);
Py_INCREF(Py_None);
@@ -486,16 +606,18 @@ static PyObject *DragObj_SetDragMouse(_self, _args)
return _res;
}
-static PyObject *DragObj_GetDragOrigin(_self, _args)
- DragObjObject *_self;
+static PyObject *Drag_GetDragOrigin(_self, _args)
+ PyObject *_self;
PyObject *_args;
{
PyObject *_res = NULL;
OSErr _err;
+ DragRef theDrag;
Point globalInitialMouse;
- if (!PyArg_ParseTuple(_args, ""))
+ if (!PyArg_ParseTuple(_args, "O&",
+ DragObj_Convert, &theDrag))
return NULL;
- _err = GetDragOrigin(_self->ob_itself,
+ _err = GetDragOrigin(theDrag,
&globalInitialMouse);
if (_err != noErr) return PyMac_Error(_err);
_res = Py_BuildValue("O&",
@@ -503,18 +625,20 @@ static PyObject *DragObj_GetDragOrigin(_self, _args)
return _res;
}
-static PyObject *DragObj_GetDragModifiers(_self, _args)
- DragObjObject *_self;
+static PyObject *Drag_GetDragModifiers(_self, _args)
+ PyObject *_self;
PyObject *_args;
{
PyObject *_res = NULL;
OSErr _err;
+ DragRef theDrag;
SInt16 modifiers;
SInt16 mouseDownModifiers;
SInt16 mouseUpModifiers;
- if (!PyArg_ParseTuple(_args, ""))
+ if (!PyArg_ParseTuple(_args, "O&",
+ DragObj_Convert, &theDrag))
return NULL;
- _err = GetDragModifiers(_self->ob_itself,
+ _err = GetDragModifiers(theDrag,
&modifiers,
&mouseDownModifiers,
&mouseUpModifiers);
@@ -526,19 +650,21 @@ static PyObject *DragObj_GetDragModifiers(_self, _args)
return _res;
}
-static PyObject *DragObj_ShowDragHilite(_self, _args)
- DragObjObject *_self;
+static PyObject *Drag_ShowDragHilite(_self, _args)
+ PyObject *_self;
PyObject *_args;
{
PyObject *_res = NULL;
OSErr _err;
+ DragRef theDrag;
RgnHandle hiliteFrame;
Boolean inside;
- if (!PyArg_ParseTuple(_args, "O&b",
+ if (!PyArg_ParseTuple(_args, "O&O&b",
+ DragObj_Convert, &theDrag,
ResObj_Convert, &hiliteFrame,
&inside))
return NULL;
- _err = ShowDragHilite(_self->ob_itself,
+ _err = ShowDragHilite(theDrag,
hiliteFrame,
inside);
if (_err != noErr) return PyMac_Error(_err);
@@ -547,34 +673,38 @@ static PyObject *DragObj_ShowDragHilite(_self, _args)
return _res;
}
-static PyObject *DragObj_HideDragHilite(_self, _args)
- DragObjObject *_self;
+static PyObject *Drag_HideDragHilite(_self, _args)
+ PyObject *_self;
PyObject *_args;
{
PyObject *_res = NULL;
OSErr _err;
- if (!PyArg_ParseTuple(_args, ""))
+ DragRef theDrag;
+ if (!PyArg_ParseTuple(_args, "O&",
+ DragObj_Convert, &theDrag))
return NULL;
- _err = HideDragHilite(_self->ob_itself);
+ _err = HideDragHilite(theDrag);
if (_err != noErr) return PyMac_Error(_err);
Py_INCREF(Py_None);
_res = Py_None;
return _res;
}
-static PyObject *DragObj_DragPreScroll(_self, _args)
- DragObjObject *_self;
+static PyObject *Drag_DragPreScroll(_self, _args)
+ PyObject *_self;
PyObject *_args;
{
PyObject *_res = NULL;
OSErr _err;
+ DragRef theDrag;
SInt16 dH;
SInt16 dV;
- if (!PyArg_ParseTuple(_args, "hh",
+ if (!PyArg_ParseTuple(_args, "O&hh",
+ DragObj_Convert, &theDrag,
&dH,
&dV))
return NULL;
- _err = DragPreScroll(_self->ob_itself,
+ _err = DragPreScroll(theDrag,
dH,
dV);
if (_err != noErr) return PyMac_Error(_err);
@@ -583,32 +713,36 @@ static PyObject *DragObj_DragPreScroll(_self, _args)
return _res;
}
-static PyObject *DragObj_DragPostScroll(_self, _args)
- DragObjObject *_self;
+static PyObject *Drag_DragPostScroll(_self, _args)
+ PyObject *_self;
PyObject *_args;
{
PyObject *_res = NULL;
OSErr _err;
- if (!PyArg_ParseTuple(_args, ""))
+ DragRef theDrag;
+ if (!PyArg_ParseTuple(_args, "O&",
+ DragObj_Convert, &theDrag))
return NULL;
- _err = DragPostScroll(_self->ob_itself);
+ _err = DragPostScroll(theDrag);
if (_err != noErr) return PyMac_Error(_err);
Py_INCREF(Py_None);
_res = Py_None;
return _res;
}
-static PyObject *DragObj_UpdateDragHilite(_self, _args)
- DragObjObject *_self;
+static PyObject *Drag_UpdateDragHilite(_self, _args)
+ PyObject *_self;
PyObject *_args;
{
PyObject *_res = NULL;
OSErr _err;
+ DragRef theDrag;
RgnHandle updateRgn;
- if (!PyArg_ParseTuple(_args, "O&",
+ if (!PyArg_ParseTuple(_args, "O&O&",
+ DragObj_Convert, &theDrag,
ResObj_Convert, &updateRgn))
return NULL;
- _err = UpdateDragHilite(_self->ob_itself,
+ _err = UpdateDragHilite(theDrag,
updateRgn);
if (_err != noErr) return PyMac_Error(_err);
Py_INCREF(Py_None);
@@ -616,117 +750,6 @@ static PyObject *DragObj_UpdateDragHilite(_self, _args)
return _res;
}
-static PyMethodDef DragObj_methods[] = {
- {"DisposeDrag", (PyCFunction)DragObj_DisposeDrag, 1,
- "() -> None"},
- {"AddDragItemFlavor", (PyCFunction)DragObj_AddDragItemFlavor, 1,
- "(ItemReference theItemRef, FlavorType theType, Buffer dataPtr, FlavorFlags theFlags) -> None"},
- {"SetDragItemFlavorData", (PyCFunction)DragObj_SetDragItemFlavorData, 1,
- "(ItemReference theItemRef, FlavorType theType, Buffer dataPtr, UInt32 dataOffset) -> None"},
- {"SetDragImage", (PyCFunction)DragObj_SetDragImage, 1,
- "(PixMapHandle imagePixMap, RgnHandle imageRgn, Point imageOffsetPt, DragImageFlags theImageFlags) -> None"},
- {"TrackDrag", (PyCFunction)DragObj_TrackDrag, 1,
- "(EventRecord theEvent, RgnHandle theRegion) -> None"},
- {"CountDragItems", (PyCFunction)DragObj_CountDragItems, 1,
- "() -> (UInt16 numItems)"},
- {"GetDragItemReferenceNumber", (PyCFunction)DragObj_GetDragItemReferenceNumber, 1,
- "(UInt16 index) -> (ItemReference theItemRef)"},
- {"CountDragItemFlavors", (PyCFunction)DragObj_CountDragItemFlavors, 1,
- "(ItemReference theItemRef) -> (UInt16 numFlavors)"},
- {"GetFlavorType", (PyCFunction)DragObj_GetFlavorType, 1,
- "(ItemReference theItemRef, UInt16 index) -> (FlavorType theType)"},
- {"GetFlavorFlags", (PyCFunction)DragObj_GetFlavorFlags, 1,
- "(ItemReference theItemRef, FlavorType theType) -> (FlavorFlags theFlags)"},
- {"GetFlavorDataSize", (PyCFunction)DragObj_GetFlavorDataSize, 1,
- "(ItemReference theItemRef, FlavorType theType) -> (Size dataSize)"},
- {"GetFlavorData", (PyCFunction)DragObj_GetFlavorData, 1,
- "(ItemReference theItemRef, FlavorType theType, Buffer dataPtr, UInt32 dataOffset) -> (Buffer dataPtr)"},
- {"GetDragItemBounds", (PyCFunction)DragObj_GetDragItemBounds, 1,
- "(ItemReference theItemRef) -> (Rect itemBounds)"},
- {"SetDragItemBounds", (PyCFunction)DragObj_SetDragItemBounds, 1,
- "(ItemReference theItemRef, Rect itemBounds) -> None"},
- {"GetDropLocation", (PyCFunction)DragObj_GetDropLocation, 1,
- "() -> (AEDesc dropLocation)"},
- {"SetDropLocation", (PyCFunction)DragObj_SetDropLocation, 1,
- "(AEDesc dropLocation) -> None"},
- {"GetDragAttributes", (PyCFunction)DragObj_GetDragAttributes, 1,
- "() -> (DragAttributes flags)"},
- {"GetDragMouse", (PyCFunction)DragObj_GetDragMouse, 1,
- "() -> (Point mouse, Point globalPinnedMouse)"},
- {"SetDragMouse", (PyCFunction)DragObj_SetDragMouse, 1,
- "(Point globalPinnedMouse) -> None"},
- {"GetDragOrigin", (PyCFunction)DragObj_GetDragOrigin, 1,
- "() -> (Point globalInitialMouse)"},
- {"GetDragModifiers", (PyCFunction)DragObj_GetDragModifiers, 1,
- "() -> (SInt16 modifiers, SInt16 mouseDownModifiers, SInt16 mouseUpModifiers)"},
- {"ShowDragHilite", (PyCFunction)DragObj_ShowDragHilite, 1,
- "(RgnHandle hiliteFrame, Boolean inside) -> None"},
- {"HideDragHilite", (PyCFunction)DragObj_HideDragHilite, 1,
- "() -> None"},
- {"DragPreScroll", (PyCFunction)DragObj_DragPreScroll, 1,
- "(SInt16 dH, SInt16 dV) -> None"},
- {"DragPostScroll", (PyCFunction)DragObj_DragPostScroll, 1,
- "() -> None"},
- {"UpdateDragHilite", (PyCFunction)DragObj_UpdateDragHilite, 1,
- "(RgnHandle updateRgn) -> None"},
- {NULL, NULL, 0}
-};
-
-PyMethodChain DragObj_chain = { DragObj_methods, NULL };
-
-static PyObject *DragObj_getattr(self, name)
- DragObjObject *self;
- char *name;
-{
- return Py_FindMethodInChain(&DragObj_chain, (PyObject *)self, name);
-}
-
-#define DragObj_setattr NULL
-
-#define DragObj_compare NULL
-
-#define DragObj_repr NULL
-
-#define DragObj_hash NULL
-
-PyTypeObject DragObj_Type = {
- PyObject_HEAD_INIT(&PyType_Type)
- 0, /*ob_size*/
- "DragObj", /*tp_name*/
- sizeof(DragObjObject), /*tp_basicsize*/
- 0, /*tp_itemsize*/
- /* methods */
- (destructor) DragObj_dealloc, /*tp_dealloc*/
- 0, /*tp_print*/
- (getattrfunc) DragObj_getattr, /*tp_getattr*/
- (setattrfunc) DragObj_setattr, /*tp_setattr*/
- (cmpfunc) DragObj_compare, /*tp_compare*/
- (reprfunc) DragObj_repr, /*tp_repr*/
- (PyNumberMethods *)0, /* tp_as_number */
- (PySequenceMethods *)0, /* tp_as_sequence */
- (PyMappingMethods *)0, /* tp_as_mapping */
- (hashfunc) DragObj_hash, /*tp_hash*/
-};
-
-/* -------------------- End object type DragObj --------------------- */
-
-
-static PyObject *Drag_NewDrag(_self, _args)
- PyObject *_self;
- PyObject *_args;
-{
- PyObject *_res = NULL;
- OSErr _err;
- DragReference theDrag;
- if (!PyArg_ParseTuple(_args, ""))
- return NULL;
- _err = NewDrag(&theDrag);
- if (_err != noErr) return PyMac_Error(_err);
- _res = Py_BuildValue("O&",
- DragObj_New, theDrag);
- return _res;
-}
-
static PyObject *Drag_GetDragHiliteColor(_self, _args)
PyObject *_self;
PyObject *_args;
@@ -892,7 +915,61 @@ static PyObject *Drag_RemoveReceiveHandler(_self, _args)
static PyMethodDef Drag_methods[] = {
{"NewDrag", (PyCFunction)Drag_NewDrag, 1,
- "() -> (DragReference theDrag)"},
+ "() -> (DragRef theDrag)"},
+ {"DisposeDrag", (PyCFunction)Drag_DisposeDrag, 1,
+ "(DragRef theDrag) -> None"},
+ {"AddDragItemFlavor", (PyCFunction)Drag_AddDragItemFlavor, 1,
+ "(DragRef theDrag, ItemReference theItemRef, FlavorType theType, Buffer dataPtr, FlavorFlags theFlags) -> None"},
+ {"SetDragItemFlavorData", (PyCFunction)Drag_SetDragItemFlavorData, 1,
+ "(DragRef theDrag, ItemReference theItemRef, FlavorType theType, Buffer dataPtr, UInt32 dataOffset) -> None"},
+ {"SetDragImage", (PyCFunction)Drag_SetDragImage, 1,
+ "(DragRef theDrag, PixMapHandle imagePixMap, RgnHandle imageRgn, Point imageOffsetPt, DragImageFlags theImageFlags) -> None"},
+ {"ChangeDragBehaviors", (PyCFunction)Drag_ChangeDragBehaviors, 1,
+ "(DragRef theDrag, DragBehaviors inBehaviorsToSet, DragBehaviors inBehaviorsToClear) -> None"},
+ {"TrackDrag", (PyCFunction)Drag_TrackDrag, 1,
+ "(DragRef theDrag, EventRecord theEvent, RgnHandle theRegion) -> None"},
+ {"CountDragItems", (PyCFunction)Drag_CountDragItems, 1,
+ "(DragRef theDrag) -> (UInt16 numItems)"},
+ {"GetDragItemReferenceNumber", (PyCFunction)Drag_GetDragItemReferenceNumber, 1,
+ "(DragRef theDrag, UInt16 index) -> (ItemReference theItemRef)"},
+ {"CountDragItemFlavors", (PyCFunction)Drag_CountDragItemFlavors, 1,
+ "(DragRef theDrag, ItemReference theItemRef) -> (UInt16 numFlavors)"},
+ {"GetFlavorType", (PyCFunction)Drag_GetFlavorType, 1,
+ "(DragRef theDrag, ItemReference theItemRef, UInt16 index) -> (FlavorType theType)"},
+ {"GetFlavorFlags", (PyCFunction)Drag_GetFlavorFlags, 1,
+ "(DragRef theDrag, ItemReference theItemRef, FlavorType theType) -> (FlavorFlags theFlags)"},
+ {"GetFlavorDataSize", (PyCFunction)Drag_GetFlavorDataSize, 1,
+ "(DragRef theDrag, ItemReference theItemRef, FlavorType theType) -> (Size dataSize)"},
+ {"GetFlavorData", (PyCFunction)Drag_GetFlavorData, 1,
+ "(DragRef theDrag, ItemReference theItemRef, FlavorType theType, Buffer dataPtr, UInt32 dataOffset) -> (Buffer dataPtr)"},
+ {"GetDragItemBounds", (PyCFunction)Drag_GetDragItemBounds, 1,
+ "(DragRef theDrag, ItemReference theItemRef) -> (Rect itemBounds)"},
+ {"SetDragItemBounds", (PyCFunction)Drag_SetDragItemBounds, 1,
+ "(DragRef theDrag, ItemReference theItemRef, Rect itemBounds) -> None"},
+ {"GetDropLocation", (PyCFunction)Drag_GetDropLocation, 1,
+ "(DragRef theDrag) -> (AEDesc dropLocation)"},
+ {"SetDropLocation", (PyCFunction)Drag_SetDropLocation, 1,
+ "(DragRef theDrag, AEDesc dropLocation) -> None"},
+ {"GetDragAttributes", (PyCFunction)Drag_GetDragAttributes, 1,
+ "(DragRef theDrag) -> (DragAttributes flags)"},
+ {"GetDragMouse", (PyCFunction)Drag_GetDragMouse, 1,
+ "(DragRef theDrag) -> (Point mouse, Point globalPinnedMouse)"},
+ {"SetDragMouse", (PyCFunction)Drag_SetDragMouse, 1,
+ "(DragRef theDrag, Point globalPinnedMouse) -> None"},
+ {"GetDragOrigin", (PyCFunction)Drag_GetDragOrigin, 1,
+ "(DragRef theDrag) -> (Point globalInitialMouse)"},
+ {"GetDragModifiers", (PyCFunction)Drag_GetDragModifiers, 1,
+ "(DragRef theDrag) -> (SInt16 modifiers, SInt16 mouseDownModifiers, SInt16 mouseUpModifiers)"},
+ {"ShowDragHilite", (PyCFunction)Drag_ShowDragHilite, 1,
+ "(DragRef theDrag, RgnHandle hiliteFrame, Boolean inside) -> None"},
+ {"HideDragHilite", (PyCFunction)Drag_HideDragHilite, 1,
+ "(DragRef theDrag) -> None"},
+ {"DragPreScroll", (PyCFunction)Drag_DragPreScroll, 1,
+ "(DragRef theDrag, SInt16 dH, SInt16 dV) -> None"},
+ {"DragPostScroll", (PyCFunction)Drag_DragPostScroll, 1,
+ "(DragRef theDrag) -> None"},
+ {"UpdateDragHilite", (PyCFunction)Drag_UpdateDragHilite, 1,
+ "(DragRef theDrag, RgnHandle updateRgn) -> None"},
{"GetDragHiliteColor", (PyCFunction)Drag_GetDragHiliteColor, 1,
"(WindowPtr window) -> (RGBColor color)"},
{"WaitMouseMoved", (PyCFunction)Drag_WaitMouseMoved, 1,
@@ -1023,7 +1100,7 @@ void initDrag()
Drag_Error = PyMac_GetOSErrException();
if (Drag_Error == NULL ||
PyDict_SetItemString(d, "Error", Drag_Error) != 0)
- Py_FatalError("can't initialize Drag.Error");
+ return;
DragObj_Type.ob_type = &PyType_Type;
Py_INCREF(&DragObj_Type);
if (PyDict_SetItemString(d, "DragObjType", (PyObject *)&DragObj_Type) != 0)
diff --git a/Mac/Modules/drag/dragsupport.py b/Mac/Modules/drag/dragsupport.py
index af8a255..d90acc9 100644
--- a/Mac/Modules/drag/dragsupport.py
+++ b/Mac/Modules/drag/dragsupport.py
@@ -12,7 +12,7 @@ OBJECTNAME = 'DragObj' # The basic name of the objects used here
# The following is *usually* unchanged but may still require tuning
MODPREFIX = MODNAME # The prefix for module-wide routines
-OBJECTTYPE = 'DragReference' # The C type used to represent them
+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
@@ -21,31 +21,21 @@ from macsupport import *
# Create the type objects
-DragReference = OpaqueByValueType(OBJECTTYPE, OBJECTPREFIX)
+DragRef = OpaqueByValueType(OBJECTTYPE, OBJECTPREFIX)
+DragItemRef = Type("ItemReference", "l")
+# Old names
+DragReference = DragRef
+ItemReference = DragItemRef
-##CCTabHandle = OpaqueByValueType("CCTabHandle", "ResObj")
-##AuxCtlHandle = OpaqueByValueType("AuxCtlHandle", "ResObj")
-##ControlPartCode = Type("ControlPartCode", "h")
-##DragConstraint = Type("DragConstraint", "h")
-##ControlVariant = Type("ControlVariant", "h")
-##IconTransformType = Type("IconTransformType", "h")
-##ControlButtonGraphicAlignment = Type("ControlButtonGraphicAlignment", "h")
-##ControlButtonTextAlignment = Type("ControlButtonTextAlignment", "h")
-##ControlButtonTextPlacement = Type("ControlButtonTextPlacement", "h")
-##ControlContentType = Type("ControlContentType", "h")
-##ControlFocusPart = Type("ControlFocusPart", "h")
-##
-##ControlFontStyleRec = OpaqueType('ControlFontStyleRec', 'ControlFontStyle')
-##ControlFontStyleRec_ptr = ControlFontStyleRec
PixMapHandle = OpaqueByValueType("PixMapHandle", "ResObj")
RgnHandle = OpaqueByValueType("RgnHandle", "ResObj")
AEDesc = OpaqueType('AEDesc')
AEDesc_ptr = AEDesc
RGBColor = OpaqueType("RGBColor", "QdRGB")
-ItemReference = Type("ItemReference", "l")
FlavorType = OSTypeType("FlavorType")
DragAttributes = Type("DragAttributes", "l")
+DragBehaviors = Type("DragBehaviors", "l")
DragImageFlags = Type("DragImageFlags", "l")
DragImageTranslucency = Type("DragImageTranslucency", "l")
DragRegionMessage = Type("DragRegionMessage", "h")