2 ** pymactoolbox.h - global routines exported by the toolbox modules
9 #ifdef WITHOUT_FRAMEWORKS
14 #include <Components.h>
19 #include <Carbon/Carbon.h>
20 #include <QuickTime/QuickTime.h>
23 #ifdef USE_TOOLBOX_OBJECT_GLUE
25 ** These macros are used in the module init code. If we use toolbox object glue
26 ** it sets the function pointer to point to the real function.
28 #define PyMac_INIT_TOOLBOX_OBJECT_NEW(object, rtn) { \
29 extern PyObject *(*PyMacGluePtr_##rtn)(object); \
30 PyMacGluePtr_##rtn = _##rtn; \
32 #define PyMac_INIT_TOOLBOX_OBJECT_CONVERT(object, rtn) { \
33 extern int (*PyMacGluePtr_##rtn)(PyObject *, object *); \
34 PyMacGluePtr_##rtn = _##rtn; \
38 ** If we don't use toolbox object glue the init macros are empty. Moreover, we define
39 ** _xxx_New to be the same as xxx_New, and the code in mactoolboxglue isn't included.
41 #define PyMac_INIT_TOOLBOX_OBJECT_NEW(object, rtn)
42 #define PyMac_INIT_TOOLBOX_OBJECT_CONVERT(object, rtn)
43 #endif /* USE_TOOLBOX_OBJECT_GLUE */
46 extern PyObject
*AEDesc_New(AppleEvent
*); /* XXXX Why passed by address?? */
47 extern int AEDesc_Convert(PyObject
*, AppleEvent
*);
50 extern PyObject
*CmpObj_New(Component
);
51 extern int CmpObj_Convert(PyObject
*, Component
*);
52 extern PyObject
*CmpInstObj_New(ComponentInstance
);
53 extern int CmpInstObj_Convert(PyObject
*, ComponentInstance
*);
56 extern PyObject
*CtlObj_New(ControlHandle
);
57 extern int CtlObj_Convert(PyObject
*, ControlHandle
*);
60 extern PyObject
*DlgObj_New(DialogPtr
);
61 extern int DlgObj_Convert(PyObject
*, DialogPtr
*);
62 extern PyObject
*DlgObj_WhichDialog(DialogPtr
);
65 extern PyObject
*DragObj_New(DragReference
);
66 extern int DragObj_Convert(PyObject
*, DragReference
*);
69 extern PyObject
*ListObj_New(ListHandle
);
70 extern int ListObj_Convert(PyObject
*, ListHandle
*);
73 extern PyObject
*MenuObj_New(MenuHandle
);
74 extern int MenuObj_Convert(PyObject
*, MenuHandle
*);
77 extern PyObject
*GrafObj_New(GrafPtr
);
78 extern int GrafObj_Convert(PyObject
*, GrafPtr
*);
79 extern PyObject
*BMObj_New(BitMapPtr
);
80 extern int BMObj_Convert(PyObject
*, BitMapPtr
*);
81 extern PyObject
*QdRGB_New(RGBColor
*);
82 extern int QdRGB_Convert(PyObject
*, RGBColor
*);
85 extern PyObject
*GWorldObj_New(GWorldPtr
);
86 extern int GWorldObj_Convert(PyObject
*, GWorldPtr
*);
89 extern PyObject
*TrackObj_New(Track
);
90 extern int TrackObj_Convert(PyObject
*, Track
*);
91 extern PyObject
*MovieObj_New(Movie
);
92 extern int MovieObj_Convert(PyObject
*, Movie
*);
93 extern PyObject
*MovieCtlObj_New(MovieController
);
94 extern int MovieCtlObj_Convert(PyObject
*, MovieController
*);
95 extern PyObject
*TimeBaseObj_New(TimeBase
);
96 extern int TimeBaseObj_Convert(PyObject
*, TimeBase
*);
97 extern PyObject
*UserDataObj_New(UserData
);
98 extern int UserDataObj_Convert(PyObject
*, UserData
*);
99 extern PyObject
*MediaObj_New(Media
);
100 extern int MediaObj_Convert(PyObject
*, Media
*);
103 extern PyObject
*ResObj_New(Handle
);
104 extern int ResObj_Convert(PyObject
*, Handle
*);
105 extern PyObject
*OptResObj_New(Handle
);
106 extern int OptResObj_Convert(PyObject
*, Handle
*);
109 extern PyObject
*TEObj_New(TEHandle
);
110 extern int TEObj_Convert(PyObject
*, TEHandle
*);
113 extern PyObject
*WinObj_New(WindowPtr
);
114 extern int WinObj_Convert(PyObject
*, WindowPtr
*);
115 extern PyObject
*WinObj_WhichWindow(WindowPtr
);