home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 7 / Apprentice-Release7.iso / Source Code / Libraries / WASTE 1.3a5 / WASTE Pascal Interfaces / WEPascalCFMGlue.p < prev   
Encoding:
Text File  |  1997-05-11  |  13.0 KB  |  343 lines  |  [TEXT/CWIE]

  1. UNIT WEPascalCFMGlue;
  2.  
  3. { WASTE Pascal CFM glue code }
  4. { version 1.3a4 (April 1997) }
  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-1997 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 NewWEFluxProc (userRoutine: WEFluxProcPtr): WEFluxUPP;
  107.     BEGIN
  108.         NewWEFluxProc := NewRoutineDescriptor(userRoutine, uppWEFluxProcInfo, GetCurrentArchitecture);
  109.     END;  { NewWEFluxProc }
  110.  
  111.     FUNCTION NewWENewObjectProc (userRoutine: WENewObjectProcPtr): WENewObjectUPP;
  112.     BEGIN
  113.         NewWENewObjectProc := NewRoutineDescriptor(userRoutine, uppWENewObjectProcInfo, GetCurrentArchitecture);
  114.     END;  { NewWENewObjectProc }
  115.  
  116.     FUNCTION NewWEDisposeObjectProc (userRoutine: WEDisposeObjectProcPtr): WEDisposeObjectUPP;
  117.     BEGIN
  118.         NewWEDisposeObjectProc := NewRoutineDescriptor(userRoutine, uppWEDisposeObjectProcInfo, GetCurrentArchitecture);
  119.     END;  { NewWEDisposeObjectProc }
  120.  
  121.     FUNCTION NewWEDrawObjectProc (userRoutine: WEDrawObjectProcPtr): WEDrawObjectUPP;
  122.     BEGIN
  123.         NewWEDrawObjectProc := NewRoutineDescriptor(userRoutine, uppWEDrawObjectProcInfo, GetCurrentArchitecture);
  124.     END;  { NewWEDrawObjectProc }
  125.  
  126.     FUNCTION NewWEClickObjectProc (userRoutine: WEClickObjectProcPtr): WEClickObjectUPP;
  127.     BEGIN
  128.         NewWEClickObjectProc := NewRoutineDescriptor(userRoutine, uppWEClickObjectProcInfo, GetCurrentArchitecture);
  129.     END;  { NewWEClickObjectProc }
  130.     
  131.     FUNCTION NewWEStreamObjectProc (userRoutine: WEStreamObjectProcPtr): WEStreamObjectUPP;
  132.     BEGIN
  133.         NewWEStreamObjectProc := NewRoutineDescriptor(userRoutine, uppWEStreamObjectProcInfo, GetCurrentArchitecture);
  134.     END;  { NewWEStreamObjectProc }
  135.  
  136.     FUNCTION CallWEClickLoopProc (we: WEReference;
  137.                                     userRoutine: WEClickLoopUPP): BOOLEAN;
  138.     BEGIN
  139.         CallWEClickLoopProc := BOOLEAN(CallUniversalProc(userRoutine, uppWEClickLoopProcInfo, we));
  140.     END;  { CallWEClickLoopProc }
  141.  
  142.     PROCEDURE CallWEScrollProc (we: WEReference;
  143.                                     userRoutine: WEScrollUPP);
  144.         VAR
  145.             retval: LONGINT;
  146.     BEGIN
  147.         retval := CallUniversalProc(userRoutine, uppWEScrollProcInfo, we);
  148.     END;  { CallWEScrollProc }
  149.  
  150.     PROCEDURE CallWETSMPreUpdateProc (we: WEReference;
  151.                                     userRoutine: WETSMPreUpdateUPP);
  152.         VAR
  153.             retval: LONGINT;
  154.     BEGIN
  155.         retval := CallUniversalProc(userRoutine, uppWETSMPreUpdateProcInfo, we);
  156.     END;  { CallWETSMPreUpdateProc }
  157.  
  158.     PROCEDURE CallWETSMPostUpdateProc (we: WEReference;
  159.                                     fixLength: LONGINT;
  160.                                     inputAreaStart, inputAreaEnd: LONGINT;
  161.                                     pinRangeStart, pinRangeEnd: LONGINT;
  162.                                     userRoutine: WETSMPostUpdateUPP);
  163.         VAR
  164.             retval: LONGINT;
  165.     BEGIN
  166.         retval := CallUniversalProc(userRoutine, uppWETSMPostUpdateProcInfo, we, fixLength, inputAreaStart, inputAreaEnd, pinRangeStart, pinRangeEnd);
  167.     END;  { CallWETSMPostUpdateProc }
  168.  
  169.     FUNCTION CallWETranslateDragProc (theDrag: DragReference;
  170.                                     theItem: ItemReference;
  171.                                     requestedType: FlavorType;
  172.                                     putDataHere: Handle;
  173.                                     dropOffset: LONGINT;
  174.                                     we: WEReference;
  175.                                     userRoutine: WETranslateDragUPP): OSErr;
  176.     BEGIN
  177.         CallWETranslateDragProc := CallUniversalProc(userRoutine, uppWETranslateDragProcInfo, theDrag, theItem, requestedType, putDataHere);
  178.     END;  { CallWETranslateDragProc }
  179.  
  180.     FUNCTION CallWEHiliteDropAreaProc (theDrag: DragReference;
  181.                                     hiliteFlag: BOOLEAN;
  182.                                     we: WEReference;
  183.                                     userRoutine: WEHiliteDropAreaUPP): OSErr;
  184.     BEGIN
  185.         CallWEHiliteDropAreaProc := CallUniversalProc(userRoutine, uppWEHiliteDropAreaProcInfo, theDrag, hiliteFlag, we);
  186.     END;  { CallWEHiliteDropAreaProc }
  187.  
  188.     FUNCTION CallWEFontIDToNameProc (fontID: INTEGER;
  189.                                     VAR fontName: Str255;
  190.                                     userRoutine: WEFontIDToNameUPP): OSErr;
  191.     BEGIN
  192.         CallWEFontIDToNameProc := CallUniversalProc(userRoutine, uppWEFontIDToNameProcInfo, fontID, fontName);
  193.     END;  { CallWEFontIDToNameProc }
  194.  
  195.     FUNCTION CallWEFontNameToIDProc ({CONST} VAR fontName: Str255;
  196.                                     oldFontID: INTEGER;
  197.                                     VAR newFontID: INTEGER;
  198.                                     userRoutine: WEFontNameToIDUPP): OSErr;
  199.     BEGIN
  200.         CallWEFontNameToIDProc := CallUniversalProc(userRoutine, uppWEFontNameToIDProcInfo, fontName, oldFontID, newFontID);
  201.     END;  { CallWEFontNameToIDProc }
  202.  
  203.     PROCEDURE CallWEDrawTextProc (pText: Ptr;
  204.                                     textLength: LONGINT;
  205.                                     slop: Fixed;
  206.                                     styleRunPosition: JustStyleCode;
  207.                                     we: WEReference;
  208.                                     userRoutine: WEDrawTextUPP);
  209.         VAR
  210.             retval: LONGINT;
  211.     BEGIN
  212.         retval := CallUniversalProc(userRoutine, uppWEDrawTextProcInfo, pText, textLength, slop, styleRunPosition, we);
  213.     END;  { CallWEDrawTextProc }
  214.  
  215.     FUNCTION CallWEPixelToCharProc (pText: Ptr;
  216.                                     textLength: LONGINT;
  217.                                     slop: Fixed;
  218.                                     VAR width: Fixed;
  219.                                     VAR edge: SignedByte;
  220.                                     styleRunPosition: JustStyleCode;
  221.                                     hPos: Fixed;
  222.                                     we: WEReference;
  223.                                     userRoutine: WEPixelToCharUPP): LONGINT;
  224.     BEGIN
  225.         CallWEPixelToCharProc := CallUniversalProc(userRoutine, uppWEPixelToCharProcInfo, pText, textLength, slop, width, edge, styleRunPosition, hPos, we);
  226.     END;  { CallWEPixelToCharProc }
  227.  
  228.     FUNCTION CallWECharToPixelProc (pText: Ptr;
  229.                                     textLength: LONGINT;
  230.                                     slop: Fixed;
  231.                                     offset: LONGINT;
  232.                                     direction: INTEGER;
  233.                                     styleRunPosition: JustStyleCode;
  234.                                     hPos: INTEGER;
  235.                                     we: WEReference;
  236.                                     userRoutine: WECharToPixelUPP): INTEGER;
  237.     BEGIN
  238.         CallWECharToPixelProc := CallUniversalProc(userRoutine, uppWECharToPixelProcInfo, pText, textLength, slop, offset, direction, styleRunPosition, hPos, we);
  239.     END;  { CallWECharToPixelProc }
  240.  
  241.     FUNCTION CallWELineBreakProc (pText: Ptr;
  242.                                     textLength: LONGINT;
  243.                                     textStart, textEnd: LONGINT;
  244.                                     VAR textWidth: Fixed;
  245.                                     VAR textOffset: LONGINT;
  246.                                     we: WEReference;
  247.                                     userRoutine: WELineBreakUPP): StyledLineBreakCode;
  248.     BEGIN
  249.         CallWELineBreakProc := CallUniversalProc(userRoutine, uppWELineBreakProcInfo, pText, textLength, textStart, textEnd, textWidth, textOffset, we);
  250.     END;  { CallWELineBreakProc }
  251.  
  252.     PROCEDURE CallWEWordBreakProc (pText: Ptr;
  253.                                     textLength, offset: INTEGER;
  254.                                     edge: SignedByte;
  255.                                     VAR breakOffsets: OffsetTable;
  256.                                     script: ScriptCode;
  257.                                     we: WEReference;
  258.                                     userRoutine: WEWordBreakUPP);
  259.         VAR
  260.             retval: LONGINT;
  261.     BEGIN
  262.         retval := CallUniversalProc(userRoutine, uppWEWordBreakProcInfo, pText, textLength, offset, edge, breakOffsets, script, we);
  263.     END;  { CallWEWordBreakProc }
  264.  
  265.     FUNCTION CallWECharByteProc (pText: Ptr;
  266.                                     textOffset: INTEGER;
  267.                                     script: ScriptCode;
  268.                                     we: WEReference;
  269.                                     userRoutine: WECharByteUPP): INTEGER;
  270.     BEGIN
  271.         CallWECharByteProc := CallUniversalProc(userRoutine, uppWECharByteProcInfo, pText, textOffset, script, we);
  272.     END;  { CallWECharByteProc }
  273.  
  274.     FUNCTION CallWECharTypeProc (pText: Ptr;
  275.                                     textOffset: INTEGER;
  276.                                     script: ScriptCode;
  277.                                     we: WEReference;
  278.                                     userRoutine: WECharTypeUPP): INTEGER;
  279.     BEGIN
  280.         CallWECharTypeProc := CallUniversalProc(userRoutine, uppWECharTypeProcInfo, pText, textOffset, script, we);
  281.     END;  { CallWECharTypeProc }
  282.  
  283.     PROCEDURE CallWEEraseProc ({CONST} VAR area: Rect;
  284.                                     we: WEReference;
  285.                                     userRoutine: WEEraseUPP);
  286.         VAR
  287.             retval: LONGINT;
  288.     BEGIN
  289.         retval := CallUniversalProc(userRoutine, uppWEEraseProcInfo, area, we);
  290.     END;  { CallWEEraseProc }
  291.  
  292.     PROCEDURE CallWEFluxProc (offset: LONGINT;
  293.                                     delta: LONGINT;
  294.                                     we: WEReference;
  295.                                     userRoutine: WEFluxUPP);
  296.         VAR
  297.             retval: LONGINT;
  298.     BEGIN
  299.         retval := CallUniversalProc(userRoutine, uppWEFluxProcInfo, offset, delta, we);
  300.     END;  { CallWEFluxProc }
  301.  
  302.     FUNCTION CallWENewObjectProc (VAR defaultObjectSize: Point;
  303.                                     objectRef: WEObjectReference;
  304.                                     userRoutine: WENewObjectUPP): OSErr;
  305.     BEGIN
  306.         CallWENewObjectProc := CallUniversalProc(userRoutine, uppWENewObjectProcInfo, defaultObjectSize, objectRef);
  307.     END;  { CallWENewObjectProc }
  308.  
  309.     FUNCTION CallWEDisposeObjectProc (objectRef: WEObjectReference;
  310.                                     userRoutine: WEDisposeObjectUPP): OSErr;
  311.     BEGIN
  312.         CallWEDisposeObjectProc := CallUniversalProc(userRoutine, uppWEDisposeObjectProcInfo, objectRef);
  313.     END;  { CallWEDisposeObjectProc }
  314.  
  315.     FUNCTION CallWEDrawObjectProc ({const} VAR destRect: Rect;
  316.                                     objectRef: WEObjectReference;
  317.                                     userRoutine: WEDrawObjectUPP): OSErr;
  318.     BEGIN
  319.         CallWEDrawObjectProc := CallUniversalProc(userRoutine, uppWEDrawObjectProcInfo, destRect, objectRef);
  320.     END;  { CallWEDrawObjectProc }
  321.  
  322.     FUNCTION CallWEClickObjectProc (hitPoint: Point;
  323.                                     modifiers: EventModifiers;
  324.                                     clickTime: LONGINT;
  325.                                     objectRef: WEObjectReference;
  326.                                     userRoutine: WEClickObjectUPP): BOOLEAN;
  327.     BEGIN
  328.         CallWEClickObjectProc := BOOLEAN(CallUniversalProc(userRoutine, uppWEClickObjectProcInfo, hitPoint, modifiers, clickTime, objectRef));
  329.     END;  { CallWEClickObjectProc }
  330.  
  331.     FUNCTION CallWEStreamObjectProc (destKind: INTEGER;
  332.                                     VAR theType: FlavorType;
  333.                                     putDataHere: Handle;
  334.                                     objectRef: WEObjectReference;
  335.                                     userRoutine: WEStreamObjectUPP): OSErr;
  336.     BEGIN
  337.         CallWEStreamObjectProc := CallUniversalProc(userRoutine, uppWEStreamObjectProcInfo, destKind, theType, putDataHere, objectRef);
  338.     END;  { CallWEStreamObjectProc }
  339.  
  340. {$POP}
  341. {$ENDC}
  342.  
  343. END.