home *** CD-ROM | disk | FTP | other *** search
/ MacHack 1996 / MacHack 1996.toast / Hacks / Hacks ’95 / ProcessBar™ / Code / Sources / patches.h < prev    next >
Encoding:
Text File  |  1995-09-10  |  2.7 KB  |  64 lines  |  [TEXT/MMCC]

  1. // File "patches.h" - 
  2.  
  3. #ifndef ____PATCHES_HEADER_____
  4. #define ____PATCHES_HEADER_____
  5.  
  6. // * **************************************************************************** * //
  7. // * **************************************************************************** * //
  8.  
  9. // Setup calling information for the routines we need
  10. #if GENERATING68K
  11. typedef pascal void (*ExitToShellProcPtr)();
  12. typedef pascal WindowPtr (*NewWindowProcPtr)(Ptr wStorage, Rect *bounds, StringPtr title,
  13.         Boolean vis, short procID, WindowPtr behind, Boolean close, long refCon);
  14. typedef ExitToShellProcPtr ExitToShellUPP;
  15. typedef NewWindowProcPtr NewWindowUPP;
  16. enum {
  17.     uppExitToShellProcInfo = 0,
  18.     uppNewWindowProcInfo = 0
  19.     };
  20. #define NewExitToShellProc(proc) (ExitToShellUPP)(proc)
  21. #define NewNewWindowProc(proc) (NewWindowUPP)(proc)
  22. #define CallExitToShellProc(proc) (* (ExitToShellProcPtr) (proc))()
  23. #define CallNewWindowProc(proc, p1, p2, p3, p4, p5, p6, p7, p8)    \
  24.         (* (NewWindowProcPtr) (proc))(p1, p2, p3, p4, p5, p6, p7, p8)
  25. #else
  26. typedef UniversalProcPtr ExitToShellUPP;
  27. typedef UniversalProcPtr NewWindowUPP;
  28. enum {
  29.     uppExitToShellProcInfo = kPascalStackBased,
  30.     uppNewWindowProcInfo = kPascalStackBased
  31.          | RESULT_SIZE(SIZE_CODE(sizeof(WindowPtr)))
  32.          | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(Ptr)))
  33.          | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(Rect *)))
  34.          | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(StringPtr)))
  35.          | STACK_ROUTINE_PARAMETER(4, SIZE_CODE(sizeof(Boolean)))
  36.          | STACK_ROUTINE_PARAMETER(5, SIZE_CODE(sizeof(short)))
  37.          | STACK_ROUTINE_PARAMETER(6, SIZE_CODE(sizeof(WindowPtr)))
  38.          | STACK_ROUTINE_PARAMETER(7, SIZE_CODE(sizeof(Boolean)))
  39.          | STACK_ROUTINE_PARAMETER(8, SIZE_CODE(sizeof(long)))
  40.     };
  41. #define NewExitToShellProc(proc) (ExitToShellUPP) \
  42.         NewRoutineDescriptor((ProcPtr)(proc), uppExitToShellProcInfo, GetCurrentISA())
  43. #define NewNewWindowProc(proc) (NewWindowUPP) \
  44.         NewRoutineDescriptor((ProcPtr)(proc), uppNewWindowProcInfo, GetCurrentISA())
  45. #define CallExitToShellProc(proc) \
  46.         CallUniversalProc((UniversalProcPtr) (proc), uppExitToShellProcInfo)
  47. #define CallNewWindowProc(proc, p1, p2, p3, p4, p5, p6, p7, p8) \
  48.         (WindowPtr) CallUniversalProc((UniversalProcPtr)(proc), \
  49.         uppNewWindowProcInfo, p1, p2, p3, p4, p5, p6, p7, p8)
  50. #endif GENERATING68K
  51.  
  52. // * **************************************************************************** * //
  53. // * **************************************************************************** * //
  54. // Function Prototypes
  55.  
  56. void PatchExitToShell(void);
  57. pascal void MyExitToShell(void);
  58.  
  59. void PatchNewWindow(void);
  60. pascal WindowPtr MyNewWindow(Ptr wStorage, Rect *bounds, StringPtr title, 
  61.         Boolean vis, short procID, WindowPtr behind, Boolean close, long refCon);
  62.  
  63. #endif  ____PATCHES_HEADER_____
  64.