Team Fortress 2 Source Code as on 22/4/2020
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

189 lines
7.2 KiB

  1. /*
  2. ** pymactoolbox.h - globals defined in mactoolboxglue.c
  3. */
  4. #ifndef Py_PYMACTOOLBOX_H
  5. #define Py_PYMACTOOLBOX_H
  6. #ifdef __cplusplus
  7. extern "C" {
  8. #endif
  9. #include <Carbon/Carbon.h>
  10. #include <QuickTime/QuickTime.h>
  11. /*
  12. ** Helper routines for error codes and such.
  13. */
  14. char *PyMac_StrError(int); /* strerror with mac errors */
  15. extern PyObject *PyMac_OSErrException; /* Exception for OSErr */
  16. PyObject *PyMac_GetOSErrException(void); /* Initialize & return it */
  17. PyObject *PyErr_Mac(PyObject *, int); /* Exception with a mac error */
  18. PyObject *PyMac_Error(OSErr); /* Uses PyMac_GetOSErrException */
  19. extern OSErr PyMac_GetFullPathname(FSSpec *, char *, int); /* convert
  20. fsspec->path */
  21. /*
  22. ** These conversion routines are defined in mactoolboxglue.c itself.
  23. */
  24. int PyMac_GetOSType(PyObject *, OSType *); /* argument parser for OSType */
  25. PyObject *PyMac_BuildOSType(OSType); /* Convert OSType to PyObject */
  26. PyObject *PyMac_BuildNumVersion(NumVersion);/* Convert NumVersion to PyObject */
  27. int PyMac_GetStr255(PyObject *, Str255); /* argument parser for Str255 */
  28. PyObject *PyMac_BuildStr255(Str255); /* Convert Str255 to PyObject */
  29. PyObject *PyMac_BuildOptStr255(Str255); /* Convert Str255 to PyObject,
  30. NULL to None */
  31. int PyMac_GetRect(PyObject *, Rect *); /* argument parser for Rect */
  32. PyObject *PyMac_BuildRect(Rect *); /* Convert Rect to PyObject */
  33. int PyMac_GetPoint(PyObject *, Point *); /* argument parser for Point */
  34. PyObject *PyMac_BuildPoint(Point); /* Convert Point to PyObject */
  35. int PyMac_GetEventRecord(PyObject *, EventRecord *); /* argument parser for
  36. EventRecord */
  37. PyObject *PyMac_BuildEventRecord(EventRecord *); /* Convert EventRecord to
  38. PyObject */
  39. int PyMac_GetFixed(PyObject *, Fixed *); /* argument parser for Fixed */
  40. PyObject *PyMac_BuildFixed(Fixed); /* Convert Fixed to PyObject */
  41. int PyMac_Getwide(PyObject *, wide *); /* argument parser for wide */
  42. PyObject *PyMac_Buildwide(wide *); /* Convert wide to PyObject */
  43. /*
  44. ** The rest of the routines are implemented by extension modules. If they are
  45. ** dynamically loaded mactoolboxglue will contain a stub implementation of the
  46. ** routine, which imports the module, whereupon the module's init routine will
  47. ** communicate the routine pointer back to the stub.
  48. ** If USE_TOOLBOX_OBJECT_GLUE is not defined there is no glue code, and the
  49. ** extension modules simply declare the routine. This is the case for static
  50. ** builds (and could be the case for MacPython CFM builds, because CFM extension
  51. ** modules can reference each other without problems).
  52. */
  53. #ifdef USE_TOOLBOX_OBJECT_GLUE
  54. /*
  55. ** These macros are used in the module init code. If we use toolbox object glue
  56. ** it sets the function pointer to point to the real function.
  57. */
  58. #define PyMac_INIT_TOOLBOX_OBJECT_NEW(object, rtn) { \
  59. extern PyObject *(*PyMacGluePtr_##rtn)(object); \
  60. PyMacGluePtr_##rtn = _##rtn; \
  61. }
  62. #define PyMac_INIT_TOOLBOX_OBJECT_CONVERT(object, rtn) { \
  63. extern int (*PyMacGluePtr_##rtn)(PyObject *, object *); \
  64. PyMacGluePtr_##rtn = _##rtn; \
  65. }
  66. #else
  67. /*
  68. ** If we don't use toolbox object glue the init macros are empty. Moreover, we define
  69. ** _xxx_New to be the same as xxx_New, and the code in mactoolboxglue isn't included.
  70. */
  71. #define PyMac_INIT_TOOLBOX_OBJECT_NEW(object, rtn)
  72. #define PyMac_INIT_TOOLBOX_OBJECT_CONVERT(object, rtn)
  73. #endif /* USE_TOOLBOX_OBJECT_GLUE */
  74. /* macfs exports */
  75. int PyMac_GetFSSpec(PyObject *, FSSpec *); /* argument parser for FSSpec */
  76. PyObject *PyMac_BuildFSSpec(FSSpec *); /* Convert FSSpec to PyObject */
  77. int PyMac_GetFSRef(PyObject *, FSRef *); /* argument parser for FSRef */
  78. PyObject *PyMac_BuildFSRef(FSRef *); /* Convert FSRef to PyObject */
  79. /* AE exports */
  80. extern PyObject *AEDesc_New(AppleEvent *); /* XXXX Why passed by address?? */
  81. extern PyObject *AEDesc_NewBorrowed(AppleEvent *);
  82. extern int AEDesc_Convert(PyObject *, AppleEvent *);
  83. /* Cm exports */
  84. extern PyObject *CmpObj_New(Component);
  85. extern int CmpObj_Convert(PyObject *, Component *);
  86. extern PyObject *CmpInstObj_New(ComponentInstance);
  87. extern int CmpInstObj_Convert(PyObject *, ComponentInstance *);
  88. /* Ctl exports */
  89. extern PyObject *CtlObj_New(ControlHandle);
  90. extern int CtlObj_Convert(PyObject *, ControlHandle *);
  91. /* Dlg exports */
  92. extern PyObject *DlgObj_New(DialogPtr);
  93. extern int DlgObj_Convert(PyObject *, DialogPtr *);
  94. extern PyObject *DlgObj_WhichDialog(DialogPtr);
  95. /* Drag exports */
  96. extern PyObject *DragObj_New(DragReference);
  97. extern int DragObj_Convert(PyObject *, DragReference *);
  98. /* List exports */
  99. extern PyObject *ListObj_New(ListHandle);
  100. extern int ListObj_Convert(PyObject *, ListHandle *);
  101. /* Menu exports */
  102. extern PyObject *MenuObj_New(MenuHandle);
  103. extern int MenuObj_Convert(PyObject *, MenuHandle *);
  104. /* Qd exports */
  105. extern PyObject *GrafObj_New(GrafPtr);
  106. extern int GrafObj_Convert(PyObject *, GrafPtr *);
  107. extern PyObject *BMObj_New(BitMapPtr);
  108. extern int BMObj_Convert(PyObject *, BitMapPtr *);
  109. extern PyObject *QdRGB_New(RGBColor *);
  110. extern int QdRGB_Convert(PyObject *, RGBColor *);
  111. /* Qdoffs exports */
  112. extern PyObject *GWorldObj_New(GWorldPtr);
  113. extern int GWorldObj_Convert(PyObject *, GWorldPtr *);
  114. /* Qt exports */
  115. extern PyObject *TrackObj_New(Track);
  116. extern int TrackObj_Convert(PyObject *, Track *);
  117. extern PyObject *MovieObj_New(Movie);
  118. extern int MovieObj_Convert(PyObject *, Movie *);
  119. extern PyObject *MovieCtlObj_New(MovieController);
  120. extern int MovieCtlObj_Convert(PyObject *, MovieController *);
  121. extern PyObject *TimeBaseObj_New(TimeBase);
  122. extern int TimeBaseObj_Convert(PyObject *, TimeBase *);
  123. extern PyObject *UserDataObj_New(UserData);
  124. extern int UserDataObj_Convert(PyObject *, UserData *);
  125. extern PyObject *MediaObj_New(Media);
  126. extern int MediaObj_Convert(PyObject *, Media *);
  127. /* Res exports */
  128. extern PyObject *ResObj_New(Handle);
  129. extern int ResObj_Convert(PyObject *, Handle *);
  130. extern PyObject *OptResObj_New(Handle);
  131. extern int OptResObj_Convert(PyObject *, Handle *);
  132. /* TE exports */
  133. extern PyObject *TEObj_New(TEHandle);
  134. extern int TEObj_Convert(PyObject *, TEHandle *);
  135. /* Win exports */
  136. extern PyObject *WinObj_New(WindowPtr);
  137. extern int WinObj_Convert(PyObject *, WindowPtr *);
  138. extern PyObject *WinObj_WhichWindow(WindowPtr);
  139. /* CF exports */
  140. extern PyObject *CFObj_New(CFTypeRef);
  141. extern int CFObj_Convert(PyObject *, CFTypeRef *);
  142. extern PyObject *CFTypeRefObj_New(CFTypeRef);
  143. extern int CFTypeRefObj_Convert(PyObject *, CFTypeRef *);
  144. extern PyObject *CFStringRefObj_New(CFStringRef);
  145. extern int CFStringRefObj_Convert(PyObject *, CFStringRef *);
  146. extern PyObject *CFMutableStringRefObj_New(CFMutableStringRef);
  147. extern int CFMutableStringRefObj_Convert(PyObject *, CFMutableStringRef *);
  148. extern PyObject *CFArrayRefObj_New(CFArrayRef);
  149. extern int CFArrayRefObj_Convert(PyObject *, CFArrayRef *);
  150. extern PyObject *CFMutableArrayRefObj_New(CFMutableArrayRef);
  151. extern int CFMutableArrayRefObj_Convert(PyObject *, CFMutableArrayRef *);
  152. extern PyObject *CFDictionaryRefObj_New(CFDictionaryRef);
  153. extern int CFDictionaryRefObj_Convert(PyObject *, CFDictionaryRef *);
  154. extern PyObject *CFMutableDictionaryRefObj_New(CFMutableDictionaryRef);
  155. extern int CFMutableDictionaryRefObj_Convert(PyObject *, CFMutableDictionaryRef *);
  156. extern PyObject *CFURLRefObj_New(CFURLRef);
  157. extern int CFURLRefObj_Convert(PyObject *, CFURLRef *);
  158. extern int OptionalCFURLRefObj_Convert(PyObject *, CFURLRef *);
  159. #ifdef __cplusplus
  160. }
  161. #endif
  162. #endif