ยปCore Development>Code coverage>Mac/Modules/drag/_Dragmodule.c

Python code coverage for Mac/Modules/drag/_Dragmodule.c

#countcontent
1n/a
2n/a/* ========================== Module _Drag ========================== */
3n/a
4n/a#include "Python.h"
5n/a
6n/a#ifndef __LP64__
7n/a
8n/a
9n/a#include "pymactoolbox.h"
10n/a
11n/a/* Macro to test whether a weak-loaded CFM function exists */
12n/a#define PyMac_PRECHECK(rtn) do { if ( &rtn == NULL ) {\
13n/a PyErr_SetString(PyExc_NotImplementedError, \
14n/a "Not available in this shared library/OS version"); \
15n/a return NULL; \
16n/a }} while(0)
17n/a
18n/a
19n/a#include <Carbon/Carbon.h>
20n/a
21n/a/* Callback glue routines */
22n/aDragTrackingHandlerUPP dragglue_TrackingHandlerUPP;
23n/aDragReceiveHandlerUPP dragglue_ReceiveHandlerUPP;
24n/aDragSendDataUPP dragglue_SendDataUPP;
25n/a#if 0
26n/aDragInputUPP dragglue_InputUPP;
27n/aDragDrawingUPP dragglue_DrawingUPP;
28n/a#endif
29n/a
30n/a#ifdef USE_TOOLBOX_OBJECT_GLUE
31n/aextern PyObject *_DragObj_New(DragRef);
32n/aextern int _DragObj_Convert(PyObject *, DragRef *);
33n/a
34n/a#define DragObj_New _DragObj_New
35n/a#define DragObj_Convert _DragObj_Convert
36n/a#endif
37n/a
38n/astatic PyObject *Drag_Error;
39n/a
40n/a/* ---------------------- Object type DragObj ----------------------- */
41n/a
42n/aPyTypeObject DragObj_Type;
43n/a
44n/a#define DragObj_Check(x) ((x)->ob_type == &DragObj_Type || PyObject_TypeCheck((x), &DragObj_Type))
45n/a
46n/atypedef struct DragObjObject {
47n/a PyObject_HEAD
48n/a DragRef ob_itself;
49n/a PyObject *sendproc;
50n/a} DragObjObject;
51n/a
52n/aPyObject *DragObj_New(DragRef itself)
53n/a{
54n/a DragObjObject *it;
55n/a if (itself == NULL) {
56n/a PyErr_SetString(Drag_Error,"Cannot create null Drag");
57n/a return NULL;
58n/a }
59n/a it = PyObject_NEW(DragObjObject, &DragObj_Type);
60n/a if (it == NULL) return NULL;
61n/a it->ob_itself = itself;
62n/a it->sendproc = NULL;
63n/a return (PyObject *)it;
64n/a}
65n/a
66n/aint DragObj_Convert(PyObject *v, DragRef *p_itself)
67n/a{
68n/a if (!DragObj_Check(v))
69n/a {
70n/a PyErr_SetString(PyExc_TypeError, "DragObj required");
71n/a return 0;
72n/a }
73n/a *p_itself = ((DragObjObject *)v)->ob_itself;
74n/a return 1;
75n/a}
76n/a
77n/astatic void DragObj_dealloc(DragObjObject *self)
78n/a{
79n/a Py_XDECREF(self->sendproc);
80n/a self->ob_type->tp_free((PyObject *)self);
81n/a}
82n/a
83n/astatic PyObject *DragObj_DisposeDrag(DragObjObject *_self, PyObject *_args)
84n/a{
85n/a PyObject *_res = NULL;
86n/a OSErr _err;
87n/a#ifndef DisposeDrag
88n/a PyMac_PRECHECK(DisposeDrag);
89n/a#endif
90n/a if (!PyArg_ParseTuple(_args, ""))
91n/a return NULL;
92n/a _err = DisposeDrag(_self->ob_itself);
93n/a if (_err != noErr) return PyMac_Error(_err);
94n/a Py_INCREF(Py_None);
95n/a _res = Py_None;
96n/a return _res;
97n/a}
98n/a
99n/astatic PyObject *DragObj_AddDragItemFlavor(DragObjObject *_self, PyObject *_args)
100n/a{
101n/a PyObject *_res = NULL;
102n/a OSErr _err;
103n/a ItemReference theItemRef;
104n/a FlavorType theType;
105n/a char *dataPtr__in__;
106n/a long dataPtr__len__;
107n/a int dataPtr__in_len__;
108n/a FlavorFlags theFlags;
109n/a#ifndef AddDragItemFlavor
110n/a PyMac_PRECHECK(AddDragItemFlavor);
111n/a#endif
112n/a if (!PyArg_ParseTuple(_args, "lO&z#l",
113n/a &theItemRef,
114n/a PyMac_GetOSType, &theType,
115n/a &dataPtr__in__, &dataPtr__in_len__,
116n/a &theFlags))
117n/a return NULL;
118n/a dataPtr__len__ = dataPtr__in_len__;
119n/a _err = AddDragItemFlavor(_self->ob_itself,
120n/a theItemRef,
121n/a theType,
122n/a dataPtr__in__, dataPtr__len__,
123n/a theFlags);
124n/a if (_err != noErr) return PyMac_Error(_err);
125n/a Py_INCREF(Py_None);
126n/a _res = Py_None;
127n/a return _res;
128n/a}
129n/a
130n/astatic PyObject *DragObj_SetDragItemFlavorData(DragObjObject *_self, PyObject *_args)
131n/a{
132n/a PyObject *_res = NULL;
133n/a OSErr _err;
134n/a ItemReference theItemRef;
135n/a FlavorType theType;
136n/a char *dataPtr__in__;
137n/a long dataPtr__len__;
138n/a int dataPtr__in_len__;
139n/a UInt32 dataOffset;
140n/a#ifndef SetDragItemFlavorData
141n/a PyMac_PRECHECK(SetDragItemFlavorData);
142n/a#endif
143n/a if (!PyArg_ParseTuple(_args, "lO&z#l",
144n/a &theItemRef,
145n/a PyMac_GetOSType, &theType,
146n/a &dataPtr__in__, &dataPtr__in_len__,
147n/a &dataOffset))
148n/a return NULL;
149n/a dataPtr__len__ = dataPtr__in_len__;
150n/a _err = SetDragItemFlavorData(_self->ob_itself,
151n/a theItemRef,
152n/a theType,
153n/a dataPtr__in__, dataPtr__len__,
154n/a dataOffset);
155n/a if (_err != noErr) return PyMac_Error(_err);
156n/a Py_INCREF(Py_None);
157n/a _res = Py_None;
158n/a return _res;
159n/a}
160n/a
161n/astatic PyObject *DragObj_SetDragImage(DragObjObject *_self, PyObject *_args)
162n/a{
163n/a PyObject *_res = NULL;
164n/a OSErr _err;
165n/a PixMapHandle imagePixMap;
166n/a RgnHandle imageRgn;
167n/a Point imageOffsetPt;
168n/a DragImageFlags theImageFlags;
169n/a#ifndef SetDragImage
170n/a PyMac_PRECHECK(SetDragImage);
171n/a#endif
172n/a if (!PyArg_ParseTuple(_args, "O&O&O&l",
173n/a ResObj_Convert, &imagePixMap,
174n/a ResObj_Convert, &imageRgn,
175n/a PyMac_GetPoint, &imageOffsetPt,
176n/a &theImageFlags))
177n/a return NULL;
178n/a _err = SetDragImage(_self->ob_itself,
179n/a imagePixMap,
180n/a imageRgn,
181n/a imageOffsetPt,
182n/a theImageFlags);
183n/a if (_err != noErr) return PyMac_Error(_err);
184n/a Py_INCREF(Py_None);
185n/a _res = Py_None;
186n/a return _res;
187n/a}
188n/a
189n/astatic PyObject *DragObj_ChangeDragBehaviors(DragObjObject *_self, PyObject *_args)
190n/a{
191n/a PyObject *_res = NULL;
192n/a OSErr _err;
193n/a DragBehaviors inBehaviorsToSet;
194n/a DragBehaviors inBehaviorsToClear;
195n/a#ifndef ChangeDragBehaviors
196n/a PyMac_PRECHECK(ChangeDragBehaviors);
197n/a#endif
198n/a if (!PyArg_ParseTuple(_args, "ll",
199n/a &inBehaviorsToSet,
200n/a &inBehaviorsToClear))
201n/a return NULL;
202n/a _err = ChangeDragBehaviors(_self->ob_itself,
203n/a inBehaviorsToSet,
204n/a inBehaviorsToClear);
205n/a if (_err != noErr) return PyMac_Error(_err);
206n/a Py_INCREF(Py_None);
207n/a _res = Py_None;
208n/a return _res;
209n/a}
210n/a
211n/astatic PyObject *DragObj_TrackDrag(DragObjObject *_self, PyObject *_args)
212n/a{
213n/a PyObject *_res = NULL;
214n/a OSErr _err;
215n/a EventRecord theEvent;
216n/a RgnHandle theRegion;
217n/a#ifndef TrackDrag
218n/a PyMac_PRECHECK(TrackDrag);
219n/a#endif
220n/a if (!PyArg_ParseTuple(_args, "O&O&",
221n/a PyMac_GetEventRecord, &theEvent,
222n/a ResObj_Convert, &theRegion))
223n/a return NULL;
224n/a _err = TrackDrag(_self->ob_itself,
225n/a &theEvent,
226n/a theRegion);
227n/a if (_err != noErr) return PyMac_Error(_err);
228n/a Py_INCREF(Py_None);
229n/a _res = Py_None;
230n/a return _res;
231n/a}
232n/a
233n/astatic PyObject *DragObj_CountDragItems(DragObjObject *_self, PyObject *_args)
234n/a{
235n/a PyObject *_res = NULL;
236n/a OSErr _err;
237n/a UInt16 numItems;
238n/a#ifndef CountDragItems
239n/a PyMac_PRECHECK(CountDragItems);
240n/a#endif
241n/a if (!PyArg_ParseTuple(_args, ""))
242n/a return NULL;
243n/a _err = CountDragItems(_self->ob_itself,
244n/a &numItems);
245n/a if (_err != noErr) return PyMac_Error(_err);
246n/a _res = Py_BuildValue("H",
247n/a numItems);
248n/a return _res;
249n/a}
250n/a
251n/astatic PyObject *DragObj_GetDragItemReferenceNumber(DragObjObject *_self, PyObject *_args)
252n/a{
253n/a PyObject *_res = NULL;
254n/a OSErr _err;
255n/a UInt16 index;
256n/a ItemReference theItemRef;
257n/a#ifndef GetDragItemReferenceNumber
258n/a PyMac_PRECHECK(GetDragItemReferenceNumber);
259n/a#endif
260n/a if (!PyArg_ParseTuple(_args, "H",
261n/a &index))
262n/a return NULL;
263n/a _err = GetDragItemReferenceNumber(_self->ob_itself,
264n/a index,
265n/a &theItemRef);
266n/a if (_err != noErr) return PyMac_Error(_err);
267n/a _res = Py_BuildValue("l",
268n/a theItemRef);
269n/a return _res;
270n/a}
271n/a
272n/astatic PyObject *DragObj_CountDragItemFlavors(DragObjObject *_self, PyObject *_args)
273n/a{
274n/a PyObject *_res = NULL;
275n/a OSErr _err;
276n/a ItemReference theItemRef;
277n/a UInt16 numFlavors;
278n/a#ifndef CountDragItemFlavors
279n/a PyMac_PRECHECK(CountDragItemFlavors);
280n/a#endif
281n/a if (!PyArg_ParseTuple(_args, "l",
282n/a &theItemRef))
283n/a return NULL;
284n/a _err = CountDragItemFlavors(_self->ob_itself,
285n/a theItemRef,
286n/a &numFlavors);
287n/a if (_err != noErr) return PyMac_Error(_err);
288n/a _res = Py_BuildValue("H",
289n/a numFlavors);
290n/a return _res;
291n/a}
292n/a
293n/astatic PyObject *DragObj_GetFlavorType(DragObjObject *_self, PyObject *_args)
294n/a{
295n/a PyObject *_res = NULL;
296n/a OSErr _err;
297n/a ItemReference theItemRef;
298n/a UInt16 index;
299n/a FlavorType theType;
300n/a#ifndef GetFlavorType
301n/a PyMac_PRECHECK(GetFlavorType);
302n/a#endif
303n/a if (!PyArg_ParseTuple(_args, "lH",
304n/a &theItemRef,
305n/a &index))
306n/a return NULL;
307n/a _err = GetFlavorType(_self->ob_itself,
308n/a theItemRef,
309n/a index,
310n/a &theType);
311n/a if (_err != noErr) return PyMac_Error(_err);
312n/a _res = Py_BuildValue("O&",
313n/a PyMac_BuildOSType, theType);
314n/a return _res;
315n/a}
316n/a
317n/astatic PyObject *DragObj_GetFlavorFlags(DragObjObject *_self, PyObject *_args)
318n/a{
319n/a PyObject *_res = NULL;
320n/a OSErr _err;
321n/a ItemReference theItemRef;
322n/a FlavorType theType;
323n/a FlavorFlags theFlags;
324n/a#ifndef GetFlavorFlags
325n/a PyMac_PRECHECK(GetFlavorFlags);
326n/a#endif
327n/a if (!PyArg_ParseTuple(_args, "lO&",
328n/a &theItemRef,
329n/a PyMac_GetOSType, &theType))
330n/a return NULL;
331n/a _err = GetFlavorFlags(_self->ob_itself,
332n/a theItemRef,
333n/a theType,
334n/a &theFlags);
335n/a if (_err != noErr) return PyMac_Error(_err);
336n/a _res = Py_BuildValue("l",
337n/a theFlags);
338n/a return _res;
339n/a}
340n/a
341n/astatic PyObject *DragObj_GetFlavorDataSize(DragObjObject *_self, PyObject *_args)
342n/a{
343n/a PyObject *_res = NULL;
344n/a OSErr _err;
345n/a ItemReference theItemRef;
346n/a FlavorType theType;
347n/a Size dataSize;
348n/a#ifndef GetFlavorDataSize
349n/a PyMac_PRECHECK(GetFlavorDataSize);
350n/a#endif
351n/a if (!PyArg_ParseTuple(_args, "lO&",
352n/a &theItemRef,
353n/a PyMac_GetOSType, &theType))
354n/a return NULL;
355n/a _err = GetFlavorDataSize(_self->ob_itself,
356n/a theItemRef,
357n/a theType,
358n/a &dataSize);
359n/a if (_err != noErr) return PyMac_Error(_err);
360n/a _res = Py_BuildValue("l",
361n/a dataSize);
362n/a return _res;
363n/a}
364n/a
365n/astatic PyObject *DragObj_GetFlavorData(DragObjObject *_self, PyObject *_args)
366n/a{
367n/a PyObject *_res = NULL;
368n/a OSErr _err;
369n/a ItemReference theItemRef;
370n/a FlavorType theType;
371n/a char *dataPtr__out__;
372n/a long dataPtr__len__;
373n/a int dataPtr__in_len__;
374n/a UInt32 dataOffset;
375n/a#ifndef GetFlavorData
376n/a PyMac_PRECHECK(GetFlavorData);
377n/a#endif
378n/a if (!PyArg_ParseTuple(_args, "lO&il",
379n/a &theItemRef,
380n/a PyMac_GetOSType, &theType,
381n/a &dataPtr__in_len__,
382n/a &dataOffset))
383n/a return NULL;
384n/a if ((dataPtr__out__ = malloc(dataPtr__in_len__)) == NULL)
385n/a {
386n/a PyErr_NoMemory();
387n/a goto dataPtr__error__;
388n/a }
389n/a dataPtr__len__ = dataPtr__in_len__;
390n/a _err = GetFlavorData(_self->ob_itself,
391n/a theItemRef,
392n/a theType,
393n/a dataPtr__out__, &dataPtr__len__,
394n/a dataOffset);
395n/a if (_err != noErr) return PyMac_Error(_err);
396n/a _res = Py_BuildValue("s#",
397n/a dataPtr__out__, (int)dataPtr__len__);
398n/a free(dataPtr__out__);
399n/a dataPtr__error__: ;
400n/a return _res;
401n/a}
402n/a
403n/astatic PyObject *DragObj_GetDragItemBounds(DragObjObject *_self, PyObject *_args)
404n/a{
405n/a PyObject *_res = NULL;
406n/a OSErr _err;
407n/a ItemReference theItemRef;
408n/a Rect itemBounds;
409n/a#ifndef GetDragItemBounds
410n/a PyMac_PRECHECK(GetDragItemBounds);
411n/a#endif
412n/a if (!PyArg_ParseTuple(_args, "l",
413n/a &theItemRef))
414n/a return NULL;
415n/a _err = GetDragItemBounds(_self->ob_itself,
416n/a theItemRef,
417n/a &itemBounds);
418n/a if (_err != noErr) return PyMac_Error(_err);
419n/a _res = Py_BuildValue("O&",
420n/a PyMac_BuildRect, &itemBounds);
421n/a return _res;
422n/a}
423n/a
424n/astatic PyObject *DragObj_SetDragItemBounds(DragObjObject *_self, PyObject *_args)
425n/a{
426n/a PyObject *_res = NULL;
427n/a OSErr _err;
428n/a ItemReference theItemRef;
429n/a Rect itemBounds;
430n/a#ifndef SetDragItemBounds
431n/a PyMac_PRECHECK(SetDragItemBounds);
432n/a#endif
433n/a if (!PyArg_ParseTuple(_args, "lO&",
434n/a &theItemRef,
435n/a PyMac_GetRect, &itemBounds))
436n/a return NULL;
437n/a _err = SetDragItemBounds(_self->ob_itself,
438n/a theItemRef,
439n/a &itemBounds);
440n/a if (_err != noErr) return PyMac_Error(_err);
441n/a Py_INCREF(Py_None);
442n/a _res = Py_None;
443n/a return _res;
444n/a}
445n/a
446n/astatic PyObject *DragObj_GetDropLocation(DragObjObject *_self, PyObject *_args)
447n/a{
448n/a PyObject *_res = NULL;
449n/a OSErr _err;
450n/a AEDesc dropLocation;
451n/a#ifndef GetDropLocation
452n/a PyMac_PRECHECK(GetDropLocation);
453n/a#endif
454n/a if (!PyArg_ParseTuple(_args, ""))
455n/a return NULL;
456n/a _err = GetDropLocation(_self->ob_itself,
457n/a &dropLocation);
458n/a if (_err != noErr) return PyMac_Error(_err);
459n/a _res = Py_BuildValue("O&",
460n/a AEDesc_New, &dropLocation);
461n/a return _res;
462n/a}
463n/a
464n/astatic PyObject *DragObj_SetDropLocation(DragObjObject *_self, PyObject *_args)
465n/a{
466n/a PyObject *_res = NULL;
467n/a OSErr _err;
468n/a AEDesc dropLocation;
469n/a#ifndef SetDropLocation
470n/a PyMac_PRECHECK(SetDropLocation);
471n/a#endif
472n/a if (!PyArg_ParseTuple(_args, "O&",
473n/a AEDesc_Convert, &dropLocation))
474n/a return NULL;
475n/a _err = SetDropLocation(_self->ob_itself,
476n/a &dropLocation);
477n/a if (_err != noErr) return PyMac_Error(_err);
478n/a Py_INCREF(Py_None);
479n/a _res = Py_None;
480n/a return _res;
481n/a}
482n/a
483n/astatic PyObject *DragObj_GetDragAttributes(DragObjObject *_self, PyObject *_args)
484n/a{
485n/a PyObject *_res = NULL;
486n/a OSErr _err;
487n/a DragAttributes flags;
488n/a#ifndef GetDragAttributes
489n/a PyMac_PRECHECK(GetDragAttributes);
490n/a#endif
491n/a if (!PyArg_ParseTuple(_args, ""))
492n/a return NULL;
493n/a _err = GetDragAttributes(_self->ob_itself,
494n/a &flags);
495n/a if (_err != noErr) return PyMac_Error(_err);
496n/a _res = Py_BuildValue("l",
497n/a flags);
498n/a return _res;
499n/a}
500n/a
501n/astatic PyObject *DragObj_GetDragMouse(DragObjObject *_self, PyObject *_args)
502n/a{
503n/a PyObject *_res = NULL;
504n/a OSErr _err;
505n/a Point mouse;
506n/a Point globalPinnedMouse;
507n/a#ifndef GetDragMouse
508n/a PyMac_PRECHECK(GetDragMouse);
509n/a#endif
510n/a if (!PyArg_ParseTuple(_args, ""))
511n/a return NULL;
512n/a _err = GetDragMouse(_self->ob_itself,
513n/a &mouse,
514n/a &globalPinnedMouse);
515n/a if (_err != noErr) return PyMac_Error(_err);
516n/a _res = Py_BuildValue("O&O&",
517n/a PyMac_BuildPoint, mouse,
518n/a PyMac_BuildPoint, globalPinnedMouse);
519n/a return _res;
520n/a}
521n/a
522n/astatic PyObject *DragObj_SetDragMouse(DragObjObject *_self, PyObject *_args)
523n/a{
524n/a PyObject *_res = NULL;
525n/a OSErr _err;
526n/a Point globalPinnedMouse;
527n/a#ifndef SetDragMouse
528n/a PyMac_PRECHECK(SetDragMouse);
529n/a#endif
530n/a if (!PyArg_ParseTuple(_args, "O&",
531n/a PyMac_GetPoint, &globalPinnedMouse))
532n/a return NULL;
533n/a _err = SetDragMouse(_self->ob_itself,
534n/a globalPinnedMouse);
535n/a if (_err != noErr) return PyMac_Error(_err);
536n/a Py_INCREF(Py_None);
537n/a _res = Py_None;
538n/a return _res;
539n/a}
540n/a
541n/astatic PyObject *DragObj_GetDragOrigin(DragObjObject *_self, PyObject *_args)
542n/a{
543n/a PyObject *_res = NULL;
544n/a OSErr _err;
545n/a Point globalInitialMouse;
546n/a#ifndef GetDragOrigin
547n/a PyMac_PRECHECK(GetDragOrigin);
548n/a#endif
549n/a if (!PyArg_ParseTuple(_args, ""))
550n/a return NULL;
551n/a _err = GetDragOrigin(_self->ob_itself,
552n/a &globalInitialMouse);
553n/a if (_err != noErr) return PyMac_Error(_err);
554n/a _res = Py_BuildValue("O&",
555n/a PyMac_BuildPoint, globalInitialMouse);
556n/a return _res;
557n/a}
558n/a
559n/astatic PyObject *DragObj_GetDragModifiers(DragObjObject *_self, PyObject *_args)
560n/a{
561n/a PyObject *_res = NULL;
562n/a OSErr _err;
563n/a SInt16 modifiers;
564n/a SInt16 mouseDownModifiers;
565n/a SInt16 mouseUpModifiers;
566n/a#ifndef GetDragModifiers
567n/a PyMac_PRECHECK(GetDragModifiers);
568n/a#endif
569n/a if (!PyArg_ParseTuple(_args, ""))
570n/a return NULL;
571n/a _err = GetDragModifiers(_self->ob_itself,
572n/a &modifiers,
573n/a &mouseDownModifiers,
574n/a &mouseUpModifiers);
575n/a if (_err != noErr) return PyMac_Error(_err);
576n/a _res = Py_BuildValue("hhh",
577n/a modifiers,
578n/a mouseDownModifiers,
579n/a mouseUpModifiers);
580n/a return _res;
581n/a}
582n/a
583n/astatic PyObject *DragObj_ShowDragHilite(DragObjObject *_self, PyObject *_args)
584n/a{
585n/a PyObject *_res = NULL;
586n/a OSErr _err;
587n/a RgnHandle hiliteFrame;
588n/a Boolean inside;
589n/a#ifndef ShowDragHilite
590n/a PyMac_PRECHECK(ShowDragHilite);
591n/a#endif
592n/a if (!PyArg_ParseTuple(_args, "O&b",
593n/a ResObj_Convert, &hiliteFrame,
594n/a &inside))
595n/a return NULL;
596n/a _err = ShowDragHilite(_self->ob_itself,
597n/a hiliteFrame,
598n/a inside);
599n/a if (_err != noErr) return PyMac_Error(_err);
600n/a Py_INCREF(Py_None);
601n/a _res = Py_None;
602n/a return _res;
603n/a}
604n/a
605n/astatic PyObject *DragObj_HideDragHilite(DragObjObject *_self, PyObject *_args)
606n/a{
607n/a PyObject *_res = NULL;
608n/a OSErr _err;
609n/a#ifndef HideDragHilite
610n/a PyMac_PRECHECK(HideDragHilite);
611n/a#endif
612n/a if (!PyArg_ParseTuple(_args, ""))
613n/a return NULL;
614n/a _err = HideDragHilite(_self->ob_itself);
615n/a if (_err != noErr) return PyMac_Error(_err);
616n/a Py_INCREF(Py_None);
617n/a _res = Py_None;
618n/a return _res;
619n/a}
620n/a
621n/astatic PyObject *DragObj_DragPreScroll(DragObjObject *_self, PyObject *_args)
622n/a{
623n/a PyObject *_res = NULL;
624n/a OSErr _err;
625n/a SInt16 dH;
626n/a SInt16 dV;
627n/a#ifndef DragPreScroll
628n/a PyMac_PRECHECK(DragPreScroll);
629n/a#endif
630n/a if (!PyArg_ParseTuple(_args, "hh",
631n/a &dH,
632n/a &dV))
633n/a return NULL;
634n/a _err = DragPreScroll(_self->ob_itself,
635n/a dH,
636n/a dV);
637n/a if (_err != noErr) return PyMac_Error(_err);
638n/a Py_INCREF(Py_None);
639n/a _res = Py_None;
640n/a return _res;
641n/a}
642n/a
643n/astatic PyObject *DragObj_DragPostScroll(DragObjObject *_self, PyObject *_args)
644n/a{
645n/a PyObject *_res = NULL;
646n/a OSErr _err;
647n/a#ifndef DragPostScroll
648n/a PyMac_PRECHECK(DragPostScroll);
649n/a#endif
650n/a if (!PyArg_ParseTuple(_args, ""))
651n/a return NULL;
652n/a _err = DragPostScroll(_self->ob_itself);
653n/a if (_err != noErr) return PyMac_Error(_err);
654n/a Py_INCREF(Py_None);
655n/a _res = Py_None;
656n/a return _res;
657n/a}
658n/a
659n/astatic PyObject *DragObj_UpdateDragHilite(DragObjObject *_self, PyObject *_args)
660n/a{
661n/a PyObject *_res = NULL;
662n/a OSErr _err;
663n/a RgnHandle updateRgn;
664n/a#ifndef UpdateDragHilite
665n/a PyMac_PRECHECK(UpdateDragHilite);
666n/a#endif
667n/a if (!PyArg_ParseTuple(_args, "O&",
668n/a ResObj_Convert, &updateRgn))
669n/a return NULL;
670n/a _err = UpdateDragHilite(_self->ob_itself,
671n/a updateRgn);
672n/a if (_err != noErr) return PyMac_Error(_err);
673n/a Py_INCREF(Py_None);
674n/a _res = Py_None;
675n/a return _res;
676n/a}
677n/a
678n/astatic PyMethodDef DragObj_methods[] = {
679n/a {"DisposeDrag", (PyCFunction)DragObj_DisposeDrag, 1,
680n/a PyDoc_STR("() -> None")},
681n/a {"AddDragItemFlavor", (PyCFunction)DragObj_AddDragItemFlavor, 1,
682n/a PyDoc_STR("(ItemReference theItemRef, FlavorType theType, Buffer dataPtr, FlavorFlags theFlags) -> None")},
683n/a {"SetDragItemFlavorData", (PyCFunction)DragObj_SetDragItemFlavorData, 1,
684n/a PyDoc_STR("(ItemReference theItemRef, FlavorType theType, Buffer dataPtr, UInt32 dataOffset) -> None")},
685n/a {"SetDragImage", (PyCFunction)DragObj_SetDragImage, 1,
686n/a PyDoc_STR("(PixMapHandle imagePixMap, RgnHandle imageRgn, Point imageOffsetPt, DragImageFlags theImageFlags) -> None")},
687n/a {"ChangeDragBehaviors", (PyCFunction)DragObj_ChangeDragBehaviors, 1,
688n/a PyDoc_STR("(DragBehaviors inBehaviorsToSet, DragBehaviors inBehaviorsToClear) -> None")},
689n/a {"TrackDrag", (PyCFunction)DragObj_TrackDrag, 1,
690n/a PyDoc_STR("(EventRecord theEvent, RgnHandle theRegion) -> None")},
691n/a {"CountDragItems", (PyCFunction)DragObj_CountDragItems, 1,
692n/a PyDoc_STR("() -> (UInt16 numItems)")},
693n/a {"GetDragItemReferenceNumber", (PyCFunction)DragObj_GetDragItemReferenceNumber, 1,
694n/a PyDoc_STR("(UInt16 index) -> (ItemReference theItemRef)")},
695n/a {"CountDragItemFlavors", (PyCFunction)DragObj_CountDragItemFlavors, 1,
696n/a PyDoc_STR("(ItemReference theItemRef) -> (UInt16 numFlavors)")},
697n/a {"GetFlavorType", (PyCFunction)DragObj_GetFlavorType, 1,
698n/a PyDoc_STR("(ItemReference theItemRef, UInt16 index) -> (FlavorType theType)")},
699n/a {"GetFlavorFlags", (PyCFunction)DragObj_GetFlavorFlags, 1,
700n/a PyDoc_STR("(ItemReference theItemRef, FlavorType theType) -> (FlavorFlags theFlags)")},
701n/a {"GetFlavorDataSize", (PyCFunction)DragObj_GetFlavorDataSize, 1,
702n/a PyDoc_STR("(ItemReference theItemRef, FlavorType theType) -> (Size dataSize)")},
703n/a {"GetFlavorData", (PyCFunction)DragObj_GetFlavorData, 1,
704n/a PyDoc_STR("(ItemReference theItemRef, FlavorType theType, Buffer dataPtr, UInt32 dataOffset) -> (Buffer dataPtr)")},
705n/a {"GetDragItemBounds", (PyCFunction)DragObj_GetDragItemBounds, 1,
706n/a PyDoc_STR("(ItemReference theItemRef) -> (Rect itemBounds)")},
707n/a {"SetDragItemBounds", (PyCFunction)DragObj_SetDragItemBounds, 1,
708n/a PyDoc_STR("(ItemReference theItemRef, Rect itemBounds) -> None")},
709n/a {"GetDropLocation", (PyCFunction)DragObj_GetDropLocation, 1,
710n/a PyDoc_STR("() -> (AEDesc dropLocation)")},
711n/a {"SetDropLocation", (PyCFunction)DragObj_SetDropLocation, 1,
712n/a PyDoc_STR("(AEDesc dropLocation) -> None")},
713n/a {"GetDragAttributes", (PyCFunction)DragObj_GetDragAttributes, 1,
714n/a PyDoc_STR("() -> (DragAttributes flags)")},
715n/a {"GetDragMouse", (PyCFunction)DragObj_GetDragMouse, 1,
716n/a PyDoc_STR("() -> (Point mouse, Point globalPinnedMouse)")},
717n/a {"SetDragMouse", (PyCFunction)DragObj_SetDragMouse, 1,
718n/a PyDoc_STR("(Point globalPinnedMouse) -> None")},
719n/a {"GetDragOrigin", (PyCFunction)DragObj_GetDragOrigin, 1,
720n/a PyDoc_STR("() -> (Point globalInitialMouse)")},
721n/a {"GetDragModifiers", (PyCFunction)DragObj_GetDragModifiers, 1,
722n/a PyDoc_STR("() -> (SInt16 modifiers, SInt16 mouseDownModifiers, SInt16 mouseUpModifiers)")},
723n/a {"ShowDragHilite", (PyCFunction)DragObj_ShowDragHilite, 1,
724n/a PyDoc_STR("(RgnHandle hiliteFrame, Boolean inside) -> None")},
725n/a {"HideDragHilite", (PyCFunction)DragObj_HideDragHilite, 1,
726n/a PyDoc_STR("() -> None")},
727n/a {"DragPreScroll", (PyCFunction)DragObj_DragPreScroll, 1,
728n/a PyDoc_STR("(SInt16 dH, SInt16 dV) -> None")},
729n/a {"DragPostScroll", (PyCFunction)DragObj_DragPostScroll, 1,
730n/a PyDoc_STR("() -> None")},
731n/a {"UpdateDragHilite", (PyCFunction)DragObj_UpdateDragHilite, 1,
732n/a PyDoc_STR("(RgnHandle updateRgn) -> None")},
733n/a {NULL, NULL, 0}
734n/a};
735n/a
736n/a#define DragObj_getsetlist NULL
737n/a
738n/a
739n/a#define DragObj_compare NULL
740n/a
741n/a#define DragObj_repr NULL
742n/a
743n/a#define DragObj_hash NULL
744n/a#define DragObj_tp_init 0
745n/a
746n/a#define DragObj_tp_alloc PyType_GenericAlloc
747n/a
748n/astatic PyObject *DragObj_tp_new(PyTypeObject *type, PyObject *_args, PyObject *_kwds)
749n/a{
750n/a PyObject *_self;
751n/a DragRef itself;
752n/a char *kw[] = {"itself", 0};
753n/a
754n/a if (!PyArg_ParseTupleAndKeywords(_args, _kwds, "O&", kw, DragObj_Convert, &itself)) return NULL;
755n/a if ((_self = type->tp_alloc(type, 0)) == NULL) return NULL;
756n/a ((DragObjObject *)_self)->ob_itself = itself;
757n/a return _self;
758n/a}
759n/a
760n/a#define DragObj_tp_free PyObject_Del
761n/a
762n/a
763n/aPyTypeObject DragObj_Type = {
764n/a PyObject_HEAD_INIT(NULL)
765n/a 0, /*ob_size*/
766n/a "_Drag.DragObj", /*tp_name*/
767n/a sizeof(DragObjObject), /*tp_basicsize*/
768n/a 0, /*tp_itemsize*/
769n/a /* methods */
770n/a (destructor) DragObj_dealloc, /*tp_dealloc*/
771n/a 0, /*tp_print*/
772n/a (getattrfunc)0, /*tp_getattr*/
773n/a (setattrfunc)0, /*tp_setattr*/
774n/a (cmpfunc) DragObj_compare, /*tp_compare*/
775n/a (reprfunc) DragObj_repr, /*tp_repr*/
776n/a (PyNumberMethods *)0, /* tp_as_number */
777n/a (PySequenceMethods *)0, /* tp_as_sequence */
778n/a (PyMappingMethods *)0, /* tp_as_mapping */
779n/a (hashfunc) DragObj_hash, /*tp_hash*/
780n/a 0, /*tp_call*/
781n/a 0, /*tp_str*/
782n/a PyObject_GenericGetAttr, /*tp_getattro*/
783n/a PyObject_GenericSetAttr, /*tp_setattro */
784n/a 0, /*tp_as_buffer*/
785n/a Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE, /* tp_flags */
786n/a 0, /*tp_doc*/
787n/a 0, /*tp_traverse*/
788n/a 0, /*tp_clear*/
789n/a 0, /*tp_richcompare*/
790n/a 0, /*tp_weaklistoffset*/
791n/a 0, /*tp_iter*/
792n/a 0, /*tp_iternext*/
793n/a DragObj_methods, /* tp_methods */
794n/a 0, /*tp_members*/
795n/a DragObj_getsetlist, /*tp_getset*/
796n/a 0, /*tp_base*/
797n/a 0, /*tp_dict*/
798n/a 0, /*tp_descr_get*/
799n/a 0, /*tp_descr_set*/
800n/a 0, /*tp_dictoffset*/
801n/a DragObj_tp_init, /* tp_init */
802n/a DragObj_tp_alloc, /* tp_alloc */
803n/a DragObj_tp_new, /* tp_new */
804n/a DragObj_tp_free, /* tp_free */
805n/a};
806n/a
807n/a/* -------------------- End object type DragObj --------------------- */
808n/a
809n/a
810n/astatic PyObject *Drag_NewDrag(PyObject *_self, PyObject *_args)
811n/a{
812n/a PyObject *_res = NULL;
813n/a OSErr _err;
814n/a DragRef theDrag;
815n/a#ifndef NewDrag
816n/a PyMac_PRECHECK(NewDrag);
817n/a#endif
818n/a if (!PyArg_ParseTuple(_args, ""))
819n/a return NULL;
820n/a _err = NewDrag(&theDrag);
821n/a if (_err != noErr) return PyMac_Error(_err);
822n/a _res = Py_BuildValue("O&",
823n/a DragObj_New, theDrag);
824n/a return _res;
825n/a}
826n/a
827n/astatic PyObject *Drag_GetDragHiliteColor(PyObject *_self, PyObject *_args)
828n/a{
829n/a PyObject *_res = NULL;
830n/a OSErr _err;
831n/a WindowPtr window;
832n/a RGBColor color;
833n/a#ifndef GetDragHiliteColor
834n/a PyMac_PRECHECK(GetDragHiliteColor);
835n/a#endif
836n/a if (!PyArg_ParseTuple(_args, "O&",
837n/a WinObj_Convert, &window))
838n/a return NULL;
839n/a _err = GetDragHiliteColor(window,
840n/a &color);
841n/a if (_err != noErr) return PyMac_Error(_err);
842n/a _res = Py_BuildValue("O&",
843n/a QdRGB_New, &color);
844n/a return _res;
845n/a}
846n/a
847n/astatic PyObject *Drag_WaitMouseMoved(PyObject *_self, PyObject *_args)
848n/a{
849n/a PyObject *_res = NULL;
850n/a Boolean _rv;
851n/a Point initialMouse;
852n/a#ifndef WaitMouseMoved
853n/a PyMac_PRECHECK(WaitMouseMoved);
854n/a#endif
855n/a if (!PyArg_ParseTuple(_args, "O&",
856n/a PyMac_GetPoint, &initialMouse))
857n/a return NULL;
858n/a _rv = WaitMouseMoved(initialMouse);
859n/a _res = Py_BuildValue("b",
860n/a _rv);
861n/a return _res;
862n/a}
863n/a
864n/astatic PyObject *Drag_ZoomRects(PyObject *_self, PyObject *_args)
865n/a{
866n/a PyObject *_res = NULL;
867n/a OSErr _err;
868n/a Rect fromRect;
869n/a Rect toRect;
870n/a SInt16 zoomSteps;
871n/a ZoomAcceleration acceleration;
872n/a#ifndef ZoomRects
873n/a PyMac_PRECHECK(ZoomRects);
874n/a#endif
875n/a if (!PyArg_ParseTuple(_args, "O&O&hh",
876n/a PyMac_GetRect, &fromRect,
877n/a PyMac_GetRect, &toRect,
878n/a &zoomSteps,
879n/a &acceleration))
880n/a return NULL;
881n/a _err = ZoomRects(&fromRect,
882n/a &toRect,
883n/a zoomSteps,
884n/a acceleration);
885n/a if (_err != noErr) return PyMac_Error(_err);
886n/a Py_INCREF(Py_None);
887n/a _res = Py_None;
888n/a return _res;
889n/a}
890n/a
891n/astatic PyObject *Drag_ZoomRegion(PyObject *_self, PyObject *_args)
892n/a{
893n/a PyObject *_res = NULL;
894n/a OSErr _err;
895n/a RgnHandle region;
896n/a Point zoomDistance;
897n/a SInt16 zoomSteps;
898n/a ZoomAcceleration acceleration;
899n/a#ifndef ZoomRegion
900n/a PyMac_PRECHECK(ZoomRegion);
901n/a#endif
902n/a if (!PyArg_ParseTuple(_args, "O&O&hh",
903n/a ResObj_Convert, &region,
904n/a PyMac_GetPoint, &zoomDistance,
905n/a &zoomSteps,
906n/a &acceleration))
907n/a return NULL;
908n/a _err = ZoomRegion(region,
909n/a zoomDistance,
910n/a zoomSteps,
911n/a acceleration);
912n/a if (_err != noErr) return PyMac_Error(_err);
913n/a Py_INCREF(Py_None);
914n/a _res = Py_None;
915n/a return _res;
916n/a}
917n/a
918n/astatic PyObject *Drag_InstallTrackingHandler(PyObject *_self, PyObject *_args)
919n/a{
920n/a PyObject *_res = NULL;
921n/a
922n/a PyObject *callback;
923n/a WindowPtr theWindow = NULL;
924n/a OSErr _err;
925n/a
926n/a if ( !PyArg_ParseTuple(_args, "O|O&", &callback, WinObj_Convert, &theWindow) )
927n/a return NULL;
928n/a Py_INCREF(callback); /* Cannot decref later, too bad */
929n/a _err = InstallTrackingHandler(dragglue_TrackingHandlerUPP, theWindow, (void *)callback);
930n/a if (_err != noErr) return PyMac_Error(_err);
931n/a Py_INCREF(Py_None);
932n/a _res = Py_None;
933n/a return _res;
934n/a
935n/a}
936n/a
937n/astatic PyObject *Drag_InstallReceiveHandler(PyObject *_self, PyObject *_args)
938n/a{
939n/a PyObject *_res = NULL;
940n/a
941n/a PyObject *callback;
942n/a WindowPtr theWindow = NULL;
943n/a OSErr _err;
944n/a
945n/a if ( !PyArg_ParseTuple(_args, "O|O&", &callback, WinObj_Convert, &theWindow) )
946n/a return NULL;
947n/a Py_INCREF(callback); /* Cannot decref later, too bad */
948n/a _err = InstallReceiveHandler(dragglue_ReceiveHandlerUPP, theWindow, (void *)callback);
949n/a if (_err != noErr) return PyMac_Error(_err);
950n/a Py_INCREF(Py_None);
951n/a _res = Py_None;
952n/a return _res;
953n/a
954n/a}
955n/a
956n/astatic PyObject *Drag_RemoveTrackingHandler(PyObject *_self, PyObject *_args)
957n/a{
958n/a PyObject *_res = NULL;
959n/a
960n/a WindowPtr theWindow = NULL;
961n/a OSErr _err;
962n/a
963n/a if ( !PyArg_ParseTuple(_args, "|O&", WinObj_Convert, &theWindow) )
964n/a return NULL;
965n/a _err = RemoveTrackingHandler(dragglue_TrackingHandlerUPP, theWindow);
966n/a if (_err != noErr) return PyMac_Error(_err);
967n/a Py_INCREF(Py_None);
968n/a _res = Py_None;
969n/a return _res;
970n/a
971n/a}
972n/a
973n/astatic PyObject *Drag_RemoveReceiveHandler(PyObject *_self, PyObject *_args)
974n/a{
975n/a PyObject *_res = NULL;
976n/a
977n/a WindowPtr theWindow = NULL;
978n/a OSErr _err;
979n/a
980n/a if ( !PyArg_ParseTuple(_args, "|O&", WinObj_Convert, &theWindow) )
981n/a return NULL;
982n/a _err = RemoveReceiveHandler(dragglue_ReceiveHandlerUPP, theWindow);
983n/a if (_err != noErr) return PyMac_Error(_err);
984n/a Py_INCREF(Py_None);
985n/a _res = Py_None;
986n/a return _res;
987n/a
988n/a}
989n/a
990n/astatic PyMethodDef Drag_methods[] = {
991n/a {"NewDrag", (PyCFunction)Drag_NewDrag, 1,
992n/a PyDoc_STR("() -> (DragRef theDrag)")},
993n/a {"GetDragHiliteColor", (PyCFunction)Drag_GetDragHiliteColor, 1,
994n/a PyDoc_STR("(WindowPtr window) -> (RGBColor color)")},
995n/a {"WaitMouseMoved", (PyCFunction)Drag_WaitMouseMoved, 1,
996n/a PyDoc_STR("(Point initialMouse) -> (Boolean _rv)")},
997n/a {"ZoomRects", (PyCFunction)Drag_ZoomRects, 1,
998n/a PyDoc_STR("(Rect fromRect, Rect toRect, SInt16 zoomSteps, ZoomAcceleration acceleration) -> None")},
999n/a {"ZoomRegion", (PyCFunction)Drag_ZoomRegion, 1,
1000n/a PyDoc_STR("(RgnHandle region, Point zoomDistance, SInt16 zoomSteps, ZoomAcceleration acceleration) -> None")},
1001n/a {"InstallTrackingHandler", (PyCFunction)Drag_InstallTrackingHandler, 1,
1002n/a PyDoc_STR(NULL)},
1003n/a {"InstallReceiveHandler", (PyCFunction)Drag_InstallReceiveHandler, 1,
1004n/a PyDoc_STR(NULL)},
1005n/a {"RemoveTrackingHandler", (PyCFunction)Drag_RemoveTrackingHandler, 1,
1006n/a PyDoc_STR(NULL)},
1007n/a {"RemoveReceiveHandler", (PyCFunction)Drag_RemoveReceiveHandler, 1,
1008n/a PyDoc_STR(NULL)},
1009n/a {NULL, NULL, 0}
1010n/a};
1011n/a
1012n/a
1013n/a
1014n/astatic pascal OSErr
1015n/adragglue_TrackingHandler(DragTrackingMessage theMessage, WindowPtr theWindow,
1016n/a void *handlerRefCon, DragReference theDrag)
1017n/a{
1018n/a PyObject *args, *rv;
1019n/a int i;
1020n/a
1021n/a args = Py_BuildValue("hO&O&", theMessage, DragObj_New, theDrag, WinObj_WhichWindow, theWindow);
1022n/a if ( args == NULL )
1023n/a return -1;
1024n/a rv = PyEval_CallObject((PyObject *)handlerRefCon, args);
1025n/a Py_DECREF(args);
1026n/a if ( rv == NULL ) {
1027n/a PySys_WriteStderr("Drag: Exception in TrackingHandler\n");
1028n/a PyErr_Print();
1029n/a return -1;
1030n/a }
1031n/a i = -1;
1032n/a if ( rv == Py_None )
1033n/a i = 0;
1034n/a else
1035n/a PyArg_Parse(rv, "l", &i);
1036n/a Py_DECREF(rv);
1037n/a return i;
1038n/a}
1039n/a
1040n/astatic pascal OSErr
1041n/adragglue_ReceiveHandler(WindowPtr theWindow, void *handlerRefCon,
1042n/a DragReference theDrag)
1043n/a{
1044n/a PyObject *args, *rv;
1045n/a int i;
1046n/a
1047n/a args = Py_BuildValue("O&O&", DragObj_New, theDrag, WinObj_WhichWindow, theWindow);
1048n/a if ( args == NULL )
1049n/a return -1;
1050n/a rv = PyEval_CallObject((PyObject *)handlerRefCon, args);
1051n/a Py_DECREF(args);
1052n/a if ( rv == NULL ) {
1053n/a PySys_WriteStderr("Drag: Exception in ReceiveHandler\n");
1054n/a PyErr_Print();
1055n/a return -1;
1056n/a }
1057n/a i = -1;
1058n/a if ( rv == Py_None )
1059n/a i = 0;
1060n/a else
1061n/a PyArg_Parse(rv, "l", &i);
1062n/a Py_DECREF(rv);
1063n/a return i;
1064n/a}
1065n/a
1066n/astatic pascal OSErr
1067n/adragglue_SendData(FlavorType theType, void *dragSendRefCon,
1068n/a ItemReference theItem, DragReference theDrag)
1069n/a{
1070n/a DragObjObject *self = (DragObjObject *)dragSendRefCon;
1071n/a PyObject *args, *rv;
1072n/a int i;
1073n/a
1074n/a if ( self->sendproc == NULL )
1075n/a return -1;
1076n/a args = Py_BuildValue("O&l", PyMac_BuildOSType, theType, theItem);
1077n/a if ( args == NULL )
1078n/a return -1;
1079n/a rv = PyEval_CallObject(self->sendproc, args);
1080n/a Py_DECREF(args);
1081n/a if ( rv == NULL ) {
1082n/a PySys_WriteStderr("Drag: Exception in SendDataHandler\n");
1083n/a PyErr_Print();
1084n/a return -1;
1085n/a }
1086n/a i = -1;
1087n/a if ( rv == Py_None )
1088n/a i = 0;
1089n/a else
1090n/a PyArg_Parse(rv, "l", &i);
1091n/a Py_DECREF(rv);
1092n/a return i;
1093n/a}
1094n/a
1095n/a#if 0
1096n/astatic pascal OSErr
1097n/adragglue_Input(Point *mouse, short *modifiers,
1098n/a void *dragSendRefCon, DragReference theDrag)
1099n/a{
1100n/a return 0;
1101n/a}
1102n/a
1103n/astatic pascal OSErr
1104n/adragglue_Drawing(xxxx
1105n/a void *dragSendRefCon, DragReference theDrag)
1106n/a{
1107n/a return 0;
1108n/a}
1109n/a#endif
1110n/a#else /* __LP64__ */
1111n/astatic PyMethodDef Drag_methods[] = {
1112n/a {NULL, NULL, 0}
1113n/a};
1114n/a#endif /* __LP64__ */
1115n/a
1116n/a
1117n/avoid init_Drag(void)
1118n/a{
1119n/a PyObject *m;
1120n/a#ifndef __LP64__
1121n/a PyObject *d;
1122n/a
1123n/a
1124n/a
1125n/a PyMac_INIT_TOOLBOX_OBJECT_NEW(DragRef, DragObj_New);
1126n/a PyMac_INIT_TOOLBOX_OBJECT_CONVERT(DragRef, DragObj_Convert);
1127n/a#endif /* !__LP64__ */
1128n/a
1129n/a
1130n/a m = Py_InitModule("_Drag", Drag_methods);
1131n/a#ifndef __LP64__
1132n/a d = PyModule_GetDict(m);
1133n/a Drag_Error = PyMac_GetOSErrException();
1134n/a if (Drag_Error == NULL ||
1135n/a PyDict_SetItemString(d, "Error", Drag_Error) != 0)
1136n/a return;
1137n/a DragObj_Type.ob_type = &PyType_Type;
1138n/a if (PyType_Ready(&DragObj_Type) < 0) return;
1139n/a Py_INCREF(&DragObj_Type);
1140n/a PyModule_AddObject(m, "DragObj", (PyObject *)&DragObj_Type);
1141n/a /* Backward-compatible name */
1142n/a Py_INCREF(&DragObj_Type);
1143n/a PyModule_AddObject(m, "DragObjType", (PyObject *)&DragObj_Type);
1144n/a
1145n/a dragglue_TrackingHandlerUPP = NewDragTrackingHandlerUPP(dragglue_TrackingHandler);
1146n/a dragglue_ReceiveHandlerUPP = NewDragReceiveHandlerUPP(dragglue_ReceiveHandler);
1147n/a dragglue_SendDataUPP = NewDragSendDataUPP(dragglue_SendData);
1148n/a#if 0
1149n/a dragglue_InputUPP = NewDragInputUPP(dragglue_Input);
1150n/a dragglue_DrawingUPP = NewDragDrawingUPP(dragglue_Drawing);
1151n/a#endif
1152n/a
1153n/a#endif /* !__LP64__ */
1154n/a
1155n/a}
1156n/a
1157n/a/* ======================== End module _Drag ======================== */
1158n/a