CDMarkObjects.mesa
Copyright © 1984 by Xerox Corporation. All rights reserved.
Created by: Bob Mayo, June 8, 1984 12:40:57 pm PDT
Redesigned by: Jacobi, September 13, 1984 3:02:09 pm PDT
Last Edited: Jacobi, September 13, 1984 3:09:38 pm PDT
DIRECTORY
Rope USING [ROPE],
CD USING [ApplicationPtr, Design, DesignPosition, ObPtr];
CDMarkObjects: CEDAR DEFINITIONS =
BEGIN
-- MarkObjects are objects to associate names to points.
markOb: READONLY CD.ObPtr;
markNameProperty: READONLY ATOM;
markAtom: READONLY ATOM; -- Contains the class atom for alignment marks objects.
--A mark object uses its origin as reference point; its client origin, the base
--of its innerrect and its real origin coincide, but it has a non 0 size.
--A mark application therefore must map the orientation of the mark to get
--the pointed position.
MarkEnumerator: TYPE = PROC [markApp: CD.ApplicationPtr] RETURNS [quit: BOOLFALSE];
EnumerateMarks: PROC [cellOb: CD.ObPtr←NIL, design: CD.Design←NIL, proc: MarkEnumerator] RETURNS [quit: BOOL];
--design is ignored if cell#NIL
FindMark: PROC [cellOb: CD.ObPtr←NIL, design: CD.Design←NIL, name: Rope.ROPE] RETURNS [CD.ApplicationPtr];
--returns any found mark with name name
--design is ignored if cell#NIL
SetMarkName: PROC [markApp: CD.ApplicationPtr, name: Rope.ROPE];
GetMarkName: PROC [markApp: CD.ApplicationPtr] RETURNS [name: Rope.ROPE];
GetMarkPosition: PROC [markApp: CD.ApplicationPtr] RETURNS [CD.DesignPosition];
END.