DIRECTORY ViewerOps USING [CreateViewer], ViewerClasses USING [Viewer, ViewerRec]; GGContainer: CEDAR DEFINITIONS IMPORTS ViewerOps = BEGIN OPEN ViewerClasses; GargoyleContainer: TYPE = ViewerClasses.Viewer; Create: PROC [info: ViewerRec _ [], paint: BOOL _ TRUE] RETURNS [gargoyleContainer: GargoyleContainer] = INLINE {RETURN[ViewerOps.CreateViewer[$GargoyleContainer, info, paint]]}; ChildYBound: PROC [gargoyleContainer: GargoyleContainer, child: Viewer] = INLINE {gargoyleContainer.class.set[self: gargoyleContainer, data: child, op: $YBound]} ; ChildXBound: PROC [gargoyleContainer: GargoyleContainer, child: Viewer] = INLINE {gargoyleContainer.class.set[self: gargoyleContainer, data: child, op: $XBound]} ; END. jGGContainer.mesa Last edited by Bier on June 5, 1985 10:41:44 pm PDT Copyright c 1985 by Xerox Corporation. All rights reserved. Author: Eric Bier July 15, 1985 12:04:58 pm PDT A container-type class for Gargoyle. Pier, December 6, 1985 10:01:28 am PST Containers are just viewers that are convenient to hold other viewers. Creates a new, empty container. You probably want to pass a name in the info record. constrain (child.wy + child.wh = gargoyleContainer.wh) after next time gargoyleContainer is painted constrain (child.wx + child.ww = gargoyleContainer.ww) after next time gargoyleContainer is painted Κ4˜Icode™Kšœ3™3Kšœ Οmœ1™