CDDefaultsImpl.mesa        (part of Chipndale)
Copyright © 1983, 1984 by Xerox Corporation.  All rights reserved.
by Christian Jacobi   August 11, 1983 11:32 am 
last edited by Christian Jacobi   October 24, 1984 7:07:52 pm PDT
 
DIRECTORY
CD,
CDDefaults,
CDPrivate,
CDValue;
 
CDDefaultsImpl: 
CEDAR 
PROGRAM 
IMPORTS CDPrivate, CDValue
EXPORTS CDDefaults =
 
BEGIN
CurrentLevel: 
PUBLIC 
PROC [design: 
CD.Design] 
RETURNS [
CD.Level] =
BEGIN
RETURN [CDValue.FetchInt[boundTo: design, key: $CurrentLevel, propagation: technology]]
END;
 
SetCurrentLevel: 
PUBLIC 
PROC [design: 
REF, level: 
CD.Level] =
BEGIN
CDValue.StoreInt[boundTo: design, key: $CurrentLevel, value: level]
END;
--design can exceptionally be a technology to set default values
--reserve call for CDPanelImpl; otherwise CDPanel gets fooled
 
LevelWidth: 
PUBLIC 
PROC [design: 
CD.Design, level: 
CD.Level] 
RETURNS [
CD.DesignNumber] =
BEGIN
RETURN [CDValue.FetchInt[boundTo: design, key: CDPrivate.levels[level].globalUniqueKey, propagation: technology]]
END;
 
SetLevelWidth: 
PUBLIC 
PROC [design: 
REF, level: 
CD.Level, width: 
CD.DesignNumber] =
BEGIN
CDValue.StoreInt[boundTo: design, key: CDPrivate.levels[level].globalUniqueKey, value: width]
END;
-- design can exceptionally be a technology to set default values
-- reserve call for CDPanelImpl; otherwise CDPanel gets fooled
 
CDValue.EnregisterKey[key: $CurrentLevel, boundTo: NIL];
FOR l: 
CD.Level 
IN 
CD.Level 
DO
[] ← CDValue.EnregisterKey[CDPrivate.levels[l].globalUniqueKey];
ENDLOOP;
 
END.