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 [Instance, Design, Position, Object];
CDMarkObjects:
CEDAR
DEFINITIONS =
BEGIN
-- MarkObjects are objects to associate names to points.
markOb: READONLY CD.Object;
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 [markInstance: CD.Instance] RETURNS [quit: BOOL←FALSE];
EnumerateMarks:
PROC [cellOb:
CD.Object←
NIL, design:
CD.Design←
NIL, proc: MarkEnumerator]
RETURNS [quit:
BOOL];
--design is ignored if cell#NIL
FindMark:
PROC [cellOb:
CD.Object←
NIL, design:
CD.Design←
NIL, name: Rope.
ROPE]
RETURNS [
CD.Instance];
--returns any found mark with name name
--design is ignored if cell#NIL
SetMarkName: PROC [markInstance: CD.Instance, name: Rope.ROPE];
GetMarkName: PROC [markInstance: CD.Instance] RETURNS [name: Rope.ROPE];
GetMarkPosition: PROC [markInstance: CD.Instance] RETURNS [CD.Position];
END.