CDAbuts.mesa
Copyright © 1983, 1984 by Xerox Corporation. All rights reversed.
Created by Bertrand Serlet, February 3, 1985 12:49:51 pm PST
Last edited by Bertrand Serlet, May 1, 1985 7:12:34 pm PDT
Abuts differ from cells by the fact they contain a list of subObjects abutted one next to the other, and not a list of applications. There is more information in an AbutX (resp. Y): the order of subObjects is important and the leftmost (resp. bottommost) is the first one. Not all cells can be described with Abuts: for example the ones which have overlapping applications.
DIRECTORY
CD USING [ObPtr];
CDAbuts: CEDAR DEFINITIONS =
BEGIN
Is this an Abut?
IsAbutProc: TYPE = PROC [ob: CD.ObPtr] RETURNS [yes: BOOLFALSE];
IsAbutX: IsAbutProc;
IsAbutY: IsAbutProc;
IsAbut: IsAbutProc; -- conceptually: IsAbutX[ob] OR IsAbutY[ob] --
Creating a new Abut object.
CreateAbutProc: TYPE = PROC [subObjects: LIST OF CD.ObPtr ← NIL] RETURNS [newAbut: CD.ObPtr];
CreateNewAbutX: CreateAbutProc;
CreateNewAbutY: CreateAbutProc;
Getting subobjects from an Abut.
NARROW error if not an Abut
GetAbutSubObjects: PROC [abut: CD.ObPtr] RETURNS [subObjects: LIST OF CD.ObPtr];
END.