blob: 3eb58b1f22155422d897da2352dd94ef86c90a89 [file] [log] [blame]
Jack Jansen9d8b96c2000-07-14 22:16:45 +00001/*
2** pymactoolbox.h - global routines exported by the toolbox modules
3*/
4
5#ifdef __cplusplus
6 extern "C" {
7#endif
8
9#include <Memory.h>
10#include <Dialogs.h>
11#include <Menus.h>
12#include <Controls.h>
13#include <Components.h>
14#include <Lists.h>
15#include <Movies.h>
16#include <Errors.h>
17
Jack Jansenf57a4a22001-05-17 22:11:44 +000018#ifdef USE_TOOLBOX_OBJECT_GLUE
19/*
20** These macros are used in the module init code. If we use toolbox object glue
21** it sets the function pointer to point to the real function.
22*/
23#define PyMac_INIT_TOOLBOX_OBJECT_NEW(rtn) { \
24 extern PyObject *(*PyMacGluePtr_##rtn)(object); \
25 PyMacGluePtr_##rtn = _##rtn; \
26}
27#define PyMac_INIT_TOOLBOX_OBJECT_CONVERT(rtn) { \
28 extern int (*PyMacGluePtr_##rtn)(object); \
29 PyMacGluePtr_##rtn = _##rtn; \
30}
31#else
32/*
33** If we don't use toolbox object glue the init macros are empty. Moreover, we define
34** _xxx_New to be the same as xxx_New, and the code in mactoolboxglue isn't included.
35*/
36#define PyMac_INIT_TOOLBOX_OBJECT_NEW(rtn)
37#define PyMac_INIT_TOOLBOX_OBJECT_CONVERT(rtn)
38#endif /* USE_TOOLBOX_OBJECT_GLUE */
39
Jack Jansen9d8b96c2000-07-14 22:16:45 +000040/* AE exports */
41extern PyObject *AEDesc_New(AppleEvent *); /* XXXX Why passed by address?? */
42extern int AEDesc_Convert(PyObject *, AppleEvent *);
43
44/* Cm exports */
45extern PyObject *CmpObj_New(Component);
46extern int CmpObj_Convert(PyObject *, Component *);
47extern PyObject *CmpInstObj_New(ComponentInstance);
48extern int CmpInstObj_Convert(PyObject *, ComponentInstance *);
49
50/* Ctl exports */
51extern PyObject *CtlObj_New(ControlHandle);
52extern int CtlObj_Convert(PyObject *, ControlHandle *);
53
54/* Dlg exports */
55extern PyObject *DlgObj_New(DialogPtr);
56extern int DlgObj_Convert(PyObject *, DialogPtr *);
Jack Jansenadd58f92001-02-09 15:59:18 +000057extern PyObject *DlgObj_WhichDialog(DialogPtr);
Jack Jansen9d8b96c2000-07-14 22:16:45 +000058
59/* Drag exports */
60extern PyObject *DragObj_New(DragReference);
61extern int DragObj_Convert(PyObject *, DragReference *);
62
63/* List exports */
64extern PyObject *ListObj_New(ListHandle);
65extern int ListObj_Convert(PyObject *, ListHandle *);
66
67/* Menu exports */
68extern PyObject *MenuObj_New(MenuHandle);
69extern int MenuObj_Convert(PyObject *, MenuHandle *);
70
71/* Qd exports */
72extern PyObject *GrafObj_New(GrafPtr);
73extern int GrafObj_Convert(PyObject *, GrafPtr *);
74extern PyObject *BMObj_New(BitMapPtr);
75extern int BMObj_Convert(PyObject *, BitMapPtr *);
76extern PyObject *QdRGB_New(RGBColor *);
77extern int QdRGB_Convert(PyObject *, RGBColor *);
78
Jack Jansen50bf1482000-12-12 22:13:03 +000079/* Qdoffs exports */
80extern PyObject *GWorldObj_New(GWorldPtr);
81extern int GWorldObj_Convert(PyObject *, GWorldPtr *);
82
Jack Jansen9d8b96c2000-07-14 22:16:45 +000083/* Qt exports */
84extern PyObject *TrackObj_New(Track);
85extern int TrackObj_Convert(PyObject *, Track *);
86extern PyObject *MovieObj_New(Movie);
87extern int MovieObj_Convert(PyObject *, Movie *);
88extern PyObject *MovieCtlObj_New(MovieController);
Jack Jansenf57a4a22001-05-17 22:11:44 +000089extern int MovieCtlObj_Convert(PyObject *, MovieController *);
Jack Jansen9d8b96c2000-07-14 22:16:45 +000090extern PyObject *TimeBaseObj_New(TimeBase);
91extern int TimeBaseObj_Convert(PyObject *, TimeBase *);
92extern PyObject *UserDataObj_New(UserData);
93extern int UserDataObj_Convert(PyObject *, UserData *);
94extern PyObject *MediaObj_New(Media);
95extern int MediaObj_Convert(PyObject *, Media *);
96
97/* Res exports */
98extern PyObject *ResObj_New(Handle);
99extern int ResObj_Convert(PyObject *, Handle *);
100extern PyObject *OptResObj_New(Handle);
101extern int OptResObj_Convert(PyObject *, Handle *);
102
103/* TE exports */
104extern PyObject *TEObj_New(TEHandle);
105extern int TEObj_Convert(PyObject *, TEHandle *);
106
107/* Win exports */
108extern PyObject *WinObj_New(WindowPtr);
109extern int WinObj_Convert(PyObject *, WindowPtr *);
110extern PyObject *WinObj_WhichWindow(WindowPtr);
Jack Jansen9d8b96c2000-07-14 22:16:45 +0000111
112
113#ifdef __cplusplus
114 }
115#endif