home *** CD-ROM | disk | FTP | other *** search
/ Mac Power 1997 January / macpower199701.bin / AMUG / Programming_10 / WASTE 1.3a1.sit / WASTE 1.3a1 Distribution / WASTE Pascal Interfaces / WEPascalCFMGlue.p < prev   
Encoding:
Text File  |  1996-08-23  |  12.5 KB  |  326 lines  |  [TEXT/CWIE]

  1. UNIT WEPascalCFMGlue;
  2.  
  3. { WASTE Pascal CFM glue code }
  4. { version 1.3a1 (August 1996) }
  5.  
  6. { RATIONALE: the NewWEナProc calls used to create routine descriptors   }
  7. {  for several WASTE callbacks are defined as actual entry points in   }
  8. {  WASTE.p (if generating CFM-based code), but in the C code they're   }
  9. {  really only macros.  So when you link a CFM Pascal program to a     }
  10. {  WASTE library built from C code, you'll want to include this glue   }
  11. {  file to avoid link errors.                                          }
  12.  
  13. { Copyright ゥ 1993-1996 Marco Piovanelli }
  14. { All Rights Reserved }
  15.  
  16. INTERFACE
  17.     USES
  18.         WASTE;
  19.  
  20. IMPLEMENTATION
  21.  
  22. {$IFC GENERATINGCFM}
  23. {$PUSH}
  24. {$Z+}
  25.  
  26.     FUNCTION NewWEClickLoopProc (userRoutine: WEClickLoopProcPtr): WEClickLoopUPP;
  27.     BEGIN
  28.         NewWEClickLoopProc := NewRoutineDescriptor(userRoutine, uppWEClickLoopProcInfo, GetCurrentArchitecture);
  29.     END;  { NewWEClickLoopProc }
  30.  
  31.     FUNCTION NewWEScrollProc (userRoutine: WEScrollProcPtr): WEScrollUPP;
  32.     BEGIN
  33.         NewWEScrollProc := NewRoutineDescriptor(userRoutine, uppWEScrollProcInfo, GetCurrentArchitecture);
  34.     END;  { NewWEScrollProc }
  35.  
  36.     FUNCTION NewWETSMPreUpdateProc (userRoutine: WETSMPreUpdateProcPtr): WETSMPreUpdateUPP;
  37.     BEGIN
  38.         NewWETSMPreUpdateProc := NewRoutineDescriptor(userRoutine, uppWETSMPreUpdateProcInfo, GetCurrentArchitecture);
  39.     END;  { NewWETSMPreUpdateProc }
  40.  
  41.     FUNCTION NewWETSMPostUpdateProc (userRoutine: WETSMPostUpdateProcPtr): WETSMPostUpdateUPP;
  42.     BEGIN
  43.         NewWETSMPostUpdateProc := NewRoutineDescriptor(userRoutine, uppWETSMPostUpdateProcInfo, GetCurrentArchitecture);
  44.     END;  { NewWETSMPostUpdateProc }
  45.  
  46.     FUNCTION NewWETranslateDragProc (userRoutine: WETranslateDragProcPtr): WETranslateDragUPP;
  47.     BEGIN
  48.         NewWETranslateDragProc := NewRoutineDescriptor(userRoutine, uppWETranslateDragProcInfo, GetCurrentArchitecture);
  49.     END;  { NewWETranslateDragProc }
  50.  
  51.     FUNCTION NewWEHiliteDropAreaProc (userRoutine: WEHiliteDropAreaProcPtr): WEHiliteDropAreaUPP;
  52.     BEGIN
  53.         NewWEHiliteDropAreaProc := NewRoutineDescriptor(userRoutine, uppWEHiliteDropAreaProcInfo, GetCurrentArchitecture);
  54.     END;  { NewWEHiliteDropAreaProc }
  55.  
  56.     FUNCTION NewWEFontIDToNameProc (userRoutine: WEFontIDToNameProcPtr): WEFontIDToNameUPP;
  57.     BEGIN
  58.         NewWEFontIDToNameProc := NewRoutineDescriptor(userRoutine, uppWEFontIDToNameProcInfo, GetCurrentArchitecture);
  59.     END;  { NewWEFontIDToNameProc }
  60.  
  61.     FUNCTION NewWEFontNameToIDProc (userRoutine: WEFontNameToIDProcPtr): WEFontNameToIDUPP;
  62.     BEGIN
  63.         NewWEFontNameToIDProc := NewRoutineDescriptor(userRoutine, uppWEFontNameToIDProcInfo, GetCurrentArchitecture);
  64.     END;  { NewWEFontNameToIDProc }
  65.  
  66.     FUNCTION NewWEDrawTextProc (userRoutine: WEDrawTextProcPtr): WEDrawTextUPP;
  67.     BEGIN
  68.         NewWEDrawTextProc := NewRoutineDescriptor(userRoutine, uppWEDrawTextProcInfo, GetCurrentArchitecture);
  69.     END;  { NewWEDrawTextProc }
  70.  
  71.     FUNCTION NewWEPixelToCharProc (userRoutine: WEPixelToCharProcPtr): WEPixelToCharUPP;
  72.     BEGIN
  73.         NewWEPixelToCharProc := NewRoutineDescriptor(userRoutine, uppWEPixelToCharProcInfo, GetCurrentArchitecture);
  74.     END;  { NewWEPixelToCharProc }
  75.  
  76.     FUNCTION NewWECharToPixelProc (userRoutine: WECharToPixelProcPtr): WECharToPixelUPP;
  77.     BEGIN
  78.         NewWECharToPixelProc := NewRoutineDescriptor(userRoutine, uppWECharToPixelProcInfo, GetCurrentArchitecture);
  79.     END;  { NewWECharToPixelProc }
  80.  
  81.     FUNCTION NewWELineBreakProc (userRoutine: WELineBreakProcPtr): WELineBreakUPP;
  82.     BEGIN
  83.         NewWELineBreakProc := NewRoutineDescriptor(userRoutine, uppWELineBreakProcInfo, GetCurrentArchitecture);
  84.     END;  { NewWELineBreakProc }
  85.  
  86.     FUNCTION NewWEWordBreakProc (userRoutine: WEWordBreakProcPtr): WEWordBreakUPP;
  87.     BEGIN
  88.         NewWEWordBreakProc := NewRoutineDescriptor(userRoutine, uppWEWordBreakProcInfo, GetCurrentArchitecture);
  89.     END;  { NewWEWordBreakProc }
  90.  
  91.     FUNCTION NewWECharByteProc (userRoutine: WECharByteProcPtr): WECharByteUPP;
  92.     BEGIN
  93.         NewWECharByteProc := NewRoutineDescriptor(userRoutine, uppWECharByteProcInfo, GetCurrentArchitecture);
  94.     END;  { NewWECharByteProc }
  95.  
  96.     FUNCTION NewWECharTypeProc (userRoutine: WECharTypeProcPtr): WECharTypeUPP;
  97.     BEGIN
  98.         NewWECharTypeProc := NewRoutineDescriptor(userRoutine, uppWECharTypeProcInfo, GetCurrentArchitecture);
  99.     END;  { NewWECharTypeProc }
  100.  
  101.     FUNCTION NewWEEraseProc (userRoutine: WEEraseProcPtr): WEEraseUPP;
  102.     BEGIN
  103.         NewWEEraseProc := NewRoutineDescriptor(userRoutine, uppWEEraseProcInfo, GetCurrentArchitecture);
  104.     END;  { NewWEEraseProc }
  105.  
  106.     FUNCTION NewWENewObjectProc (userRoutine: WENewObjectProcPtr): WENewObjectUPP;
  107.     BEGIN
  108.         NewWENewObjectProc := NewRoutineDescriptor(userRoutine, uppWENewObjectProcInfo, GetCurrentArchitecture);
  109.     END;  { NewWENewObjectProc }
  110.  
  111.     FUNCTION NewWEDisposeObjectProc (userRoutine: WEDisposeObjectProcPtr): WEDisposeObjectUPP;
  112.     BEGIN
  113.         NewWEDisposeObjectProc := NewRoutineDescriptor(userRoutine, uppWEDisposeObjectProcInfo, GetCurrentArchitecture);
  114.     END;  { NewWEDisposeObjectProc }
  115.  
  116.     FUNCTION NewWEDrawObjectProc (userRoutine: WEDrawObjectProcPtr): WEDrawObjectUPP;
  117.     BEGIN
  118.         NewWEDrawObjectProc := NewRoutineDescriptor(userRoutine, uppWEDrawObjectProcInfo, GetCurrentArchitecture);
  119.     END;  { NewWEDrawObjectProc }
  120.  
  121.     FUNCTION NewWEClickObjectProc (userRoutine: WEClickObjectProcPtr): WEClickObjectUPP;
  122.     BEGIN
  123.         NewWEClickObjectProc := NewRoutineDescriptor(userRoutine, uppWEClickObjectProcInfo, GetCurrentArchitecture);
  124.     END;  { NewWEClickObjectProc }
  125.     
  126.     FUNCTION NewWEStreamObjectProc (userRoutine: WEStreamObjectProcPtr): WEStreamObjectUPP;
  127.     BEGIN
  128.         NewWEStreamObjectProc := NewRoutineDescriptor(userRoutine, uppWEStreamObjectProcInfo, GetCurrentArchitecture);
  129.     END;  { NewWEStreamObjectProc }
  130.  
  131.     FUNCTION CallWEClickLoopProc (we: WEReference;
  132.                                     userRoutine: WEClickLoopUPP): BOOLEAN;
  133.     BEGIN
  134.         CallWEClickLoopProc := BOOLEAN(CallUniversalProc(userRoutine, uppWEClickLoopProcInfo, we));
  135.     END;  { CallWEClickLoopProc }
  136.  
  137.     PROCEDURE CallWEScrollProc (we: WEReference;
  138.                                     userRoutine: WEScrollUPP);
  139.         VAR
  140.             retval: LONGINT;
  141.     BEGIN
  142.         retval := CallUniversalProc(userRoutine, uppWEScrollProcInfo, we);
  143.     END;  { CallWEScrollProc }
  144.  
  145.     PROCEDURE CallWETSMPreUpdateProc (we: WEReference;
  146.                                     userRoutine: WETSMPreUpdateUPP);
  147.         VAR
  148.             retval: LONGINT;
  149.     BEGIN
  150.         retval := CallUniversalProc(userRoutine, uppWETSMPreUpdateProcInfo, we);
  151.     END;  { CallWETSMPreUpdateProc }
  152.  
  153.     PROCEDURE CallWETSMPostUpdateProc (we: WEReference;
  154.                                     fixLength: LONGINT;
  155.                                     inputAreaStart, inputAreaEnd: LONGINT;
  156.                                     pinRangeStart, pinRangeEnd: LONGINT;
  157.                                     userRoutine: WETSMPostUpdateUPP);
  158.         VAR
  159.             retval: LONGINT;
  160.     BEGIN
  161.         retval := CallUniversalProc(userRoutine, uppWETSMPostUpdateProcInfo, we, fixLength, inputAreaStart, inputAreaEnd, pinRangeStart, pinRangeEnd);
  162.     END;  { CallWETSMPostUpdateProc }
  163.  
  164.     FUNCTION CallWETranslateDragProc (theDrag: DragReference;
  165.                                     theItem: ItemReference;
  166.                                     requestedType: FlavorType;
  167.                                     putDataHere: Handle;
  168.                                     userRoutine: WETranslateDragUPP): OSErr;
  169.     BEGIN
  170.         CallWETranslateDragProc := CallUniversalProc(userRoutine, uppWETranslateDragProcInfo, theDrag, theItem, requestedType, putDataHere);
  171.     END;  { CallWETranslateDragProc }
  172.  
  173.     FUNCTION CallWEHiliteDropAreaProc (theDrag: DragReference;
  174.                                     hiliteFlag: BOOLEAN;
  175.                                     we: WEReference;
  176.                                     userRoutine: WEHiliteDropAreaUPP): OSErr;
  177.     BEGIN
  178.         CallWEHiliteDropAreaProc := CallUniversalProc(userRoutine, uppWEHiliteDropAreaProcInfo, theDrag, hiliteFlag, we);
  179.     END;  { CallWEHiliteDropAreaProc }
  180.  
  181.     FUNCTION CallWEFontIDToNameProc (fontID: INTEGER;
  182.                                     VAR fontName: Str255;
  183.                                     userRoutine: WEFontIDToNameUPP): OSErr;
  184.     BEGIN
  185.         CallWEFontIDToNameProc := CallUniversalProc(userRoutine, uppWEFontIDToNameProcInfo, fontID, fontName);
  186.     END;  { CallWEFontIDToNameProc }
  187.  
  188.     FUNCTION CallWEFontNameToIDProc ({CONST} VAR fontName: Str255;
  189.                                     oldFontID: INTEGER;
  190.                                     VAR newFontID: INTEGER;
  191.                                     userRoutine: WEFontNameToIDUPP): OSErr;
  192.     BEGIN
  193.         CallWEFontNameToIDProc := CallUniversalProc(userRoutine, uppWEFontNameToIDProcInfo, fontName, oldFontID, newFontID);
  194.     END;  { CallWEFontNameToIDProc }
  195.  
  196.     PROCEDURE CallWEDrawTextProc (pText: Ptr;
  197.                                     textLength: LONGINT;
  198.                                     slop: Fixed;
  199.                                     styleRunPosition: JustStyleCode;
  200.                                     we: WEReference;
  201.                                     userRoutine: WEDrawTextUPP);
  202.         VAR
  203.             retval: LONGINT;
  204.     BEGIN
  205.         retval := CallUniversalProc(userRoutine, uppWEDrawTextProcInfo, pText, textLength, slop, styleRunPosition, we);
  206.     END;  { CallWEDrawTextProc }
  207.  
  208.     FUNCTION CallWEPixelToCharProc (pText: Ptr;
  209.                                     textLength: LONGINT;
  210.                                     slop: Fixed;
  211.                                     VAR width: Fixed;
  212.                                     VAR edge: SignedByte;
  213.                                     styleRunPosition: JustStyleCode;
  214.                                     hPos: Fixed;
  215.                                     we: WEReference;
  216.                                     userRoutine: WEPixelToCharUPP): LONGINT;
  217.     BEGIN
  218.         CallWEPixelToCharProc := CallUniversalProc(userRoutine, uppWEPixelToCharProcInfo, pText, textLength, slop, width, edge, styleRunPosition, hPos, we);
  219.     END;  { CallWEPixelToCharProc }
  220.  
  221.     FUNCTION CallWECharToPixelProc (pText: Ptr;
  222.                                     textLength: LONGINT;
  223.                                     slop: Fixed;
  224.                                     offset: LONGINT;
  225.                                     direction: INTEGER;
  226.                                     styleRunPosition: JustStyleCode;
  227.                                     hPos: LONGINT;
  228.                                     we: WEReference;
  229.                                     userRoutine: WECharToPixelUPP): INTEGER;
  230.     BEGIN
  231.         CallWECharToPixelProc := CallUniversalProc(userRoutine, uppWECharToPixelProcInfo, pText, textLength, slop, offset, direction, styleRunPosition, hPos, we);
  232.     END;  { CallWECharToPixelProc }
  233.  
  234.     FUNCTION CallWELineBreakProc (pText: Ptr;
  235.                                     textLength: LONGINT;
  236.                                     textStart, textEnd: LONGINT;
  237.                                     VAR textWidth: Fixed;
  238.                                     VAR textOffset: LONGINT;
  239.                                     we: WEReference;
  240.                                     userRoutine: WELineBreakUPP): StyledLineBreakCode;
  241.     BEGIN
  242.         CallWELineBreakProc := CallUniversalProc(userRoutine, uppWELineBreakProcInfo, pText, textLength, textStart, textEnd, textWidth, textOffset, we);
  243.     END;  { CallWELineBreakProc }
  244.  
  245.     PROCEDURE CallWEWordBreakProc (pText: Ptr;
  246.                                     textLength, offset: INTEGER;
  247.                                     edge: SignedByte;
  248.                                     VAR breakOffsets: OffsetTable;
  249.                                     script: ScriptCode;
  250.                                     we: WEReference;
  251.                                     userRoutine: WEWordBreakUPP);
  252.         VAR
  253.             retval: LONGINT;
  254.     BEGIN
  255.         retval := CallUniversalProc(userRoutine, uppWEWordBreakProcInfo, pText, textLength, offset, edge, breakOffsets, script, we);
  256.     END;  { CallWEWordBreakProc }
  257.  
  258.     FUNCTION CallWECharByteProc (pText: Ptr;
  259.                                     textOffset: INTEGER;
  260.                                     script: ScriptCode;
  261.                                     we: WEReference;
  262.                                     userRoutine: WECharByteUPP): INTEGER;
  263.     BEGIN
  264.         CallWECharByteProc := CallUniversalProc(userRoutine, uppWECharByteProcInfo, pText, textOffset, script, we);
  265.     END;  { CallWECharByteProc }
  266.  
  267.     FUNCTION CallWECharTypeProc (pText: Ptr;
  268.                                     textOffset: INTEGER;
  269.                                     script: ScriptCode;
  270.                                     we: WEReference;
  271.                                     userRoutine: WECharTypeUPP): INTEGER;
  272.     BEGIN
  273.         CallWECharTypeProc := CallUniversalProc(userRoutine, uppWECharTypeProcInfo, pText, textOffset, script, we);
  274.     END;  { CallWECharTypeProc }
  275.  
  276.     PROCEDURE CallWEEraseProc ({CONST} VAR area: Rect;
  277.                                     we: WEReference;
  278.                                     userRoutine: WEEraseUPP);
  279.         VAR
  280.             retval: LONGINT;
  281.     BEGIN
  282.         retval := CallUniversalProc(userRoutine, uppWEEraseProcInfo, area, we);
  283.     END;  { CallWEEraseProc }
  284.  
  285.     FUNCTION CallWENewObjectProc (VAR defaultObjectSize: Point;
  286.                                     objectRef: WEObjectReference;
  287.                                     userRoutine: WENewObjectUPP): OSErr;
  288.     BEGIN
  289.         CallWENewObjectProc := CallUniversalProc(userRoutine, uppWENewObjectProcInfo, defaultObjectSize, objectRef);
  290.     END;  { CallWENewObjectProc }
  291.  
  292.     FUNCTION CallWEDisposeObjectProc (objectRef: WEObjectReference;
  293.                                     userRoutine: WEDisposeObjectUPP): OSErr;
  294.     BEGIN
  295.         CallWEDisposeObjectProc := CallUniversalProc(userRoutine, uppWEDisposeObjectProcInfo, objectRef);
  296.     END;  { CallWEDisposeObjectProc }
  297.  
  298.     FUNCTION CallWEDrawObjectProc ({const} VAR destRect: Rect;
  299.                                     objectRef: WEObjectReference;
  300.                                     userRoutine: WEDrawObjectUPP): OSErr;
  301.     BEGIN
  302.         CallWEDrawObjectProc := CallUniversalProc(userRoutine, uppWEDrawObjectProcInfo, destRect, objectRef);
  303.     END;  { CallWEDrawObjectProc }
  304.  
  305.     FUNCTION CallWEClickObjectProc (hitPoint: Point;
  306.                                     modifiers: EventModifiers;
  307.                                     clickTime: LONGINT;
  308.                                     objectRef: WEObjectReference;
  309.                                     userRoutine: WEClickObjectUPP): BOOLEAN;
  310.     BEGIN
  311.         CallWEClickObjectProc := BOOLEAN(CallUniversalProc(userRoutine, uppWEClickObjectProcInfo, hitPoint, modifiers, clickTime, objectRef));
  312.     END;  { CallWEClickObjectProc }
  313.  
  314.     FUNCTION CallWEStreamObjectProc (destKind: INTEGER;
  315.                                     VAR theType: FlavorType;
  316.                                     putDataHere: Handle;
  317.                                     objectRef: WEObjectReference;
  318.                                     userRoutine: WEStreamObjectUPP): OSErr;
  319.     BEGIN
  320.         CallWEStreamObjectProc := CallUniversalProc(userRoutine, uppWEStreamObjectProcInfo, destKind, theType, putDataHere, objectRef);
  321.     END;  { CallWEStreamObjectProc }
  322.  
  323. {$POP}
  324. {$ENDC}
  325.  
  326. END.