dubois@uwmacc.UUCP (Paul DuBois) (12/20/85)
Rascal does not have the "[ Not in ROM ]" routines described in the Text Edit section of Inside Mac for transferring text back and forth between the text scrap and the desk scrap (clipboard), so I took the IMLib stuff posted recently by Andrew Shebanow and adapted the relevant calls to Rascal. Thank you, Andrew. Just compile the source and use it like any other library. --- cut here --- Program __TEScrap; (* Non-ROM TextEdit Scrap-handling routines. Rascal source written 18 December 1985 by Paul DuBois *) Uses __ToolBox, __ToolUtil ; Const TEScrpLength = $0AB0; (* TWO bytes *) TEScrpHandle = $0AB4; Type OSErr = integer; Handle = PtrL; (* these two are lifted from __Memory.src *) PROCEDURE HLock(h: ptrL); { RegCall(trap $A029,h,,)}; PROCEDURE HUnlock(h: ptrL); { RegCall(trap $A02A,h,,)}; (* Return handle to TextEdit scrap *) Func TEScrapHandle (): Handle; { TEScrapHandle := ptrl (TEScrpHandle)^; }; (* Return length of TextEdit scrap *) Func TEGetScrapLen (): longint; { TEGetScrapLen := longint (ptrw (TEScrpLength)^); }; (* Set length of TextEdit scrap *) Proc TESetScrapLen (len : longint); { ptrw (TEScrpLength)^ := integer (len); }; (* Copy the TextEdit scrap to the desk scrap. ZeroScrap should be called first. Actually returns the scrap length, not an OSErr. *) Func TEToScrap (): OSErr; var ScrpHand: Handle; result: longint; { ScrpHand := TEScrapHandle (); HLock (ScrpHand); result := PutScrap (TEGetScrapLen (), $54455854L (* 'TEXT' *), ScrpHand^); HUnlock (ScrpHand); if result > 0 then result := 0; TEToScrap := result; }; (* Copy the desk scrap into the TextEdit scrap. Actually returns the scrap length, not an OSErr. *) Func TEFromScrap (): OSErr; var ScrpHand: ptrl; result, offset: longint; { ScrpHand := TEScrapHandle (); result := GetScrap (ScrpHand, $54455854L (* 'TEXT' *), @offset); if result > 0 then TESetScrapLen (result); TEFromScrap := result; }; (* end __TEScrap.src *) -- | Paul DuBois {allegra,ihnp4,seismo}!uwvax!uwmacc!dubois --+-- | "The voice of the Lord is full of majesty." | Psalm 29:4