DIRECTORY AtomButtons, GGInterfaceTypes, GGModelTypes, GGState; GGStateImpl: CEDAR PROGRAM IMPORTS AtomButtons EXPORTS GGState = BEGIN ExtendMode: TYPE = GGModelTypes.ExtendMode; GGData: TYPE = GGInterfaceTypes.GGData; GravityType: TYPE = GGInterfaceTypes.GravityType; SelectMode: TYPE = GGModelTypes.SelectMode; GetShowColors: PUBLIC PROC [ggData: GGData] RETURNS [BOOL] = { RETURN[AtomButtons.GetButtonState[ggData.refresh.showColors] = on]; }; SetShowColors: PUBLIC PROC [ggData: GGData, showColors: BOOL] = { AtomButtons.SetButtonState[ggData.refresh.showColors, IF showColors THEN on ELSE off]; }; GetGravityType: PUBLIC PROC [ggData: GGData] RETURNS [gravityType: GravityType] = { RETURN[ggData.hitTest.gravityType]; }; SetGravityType: PUBLIC PROC [ggData: GGData, gravityType: GravityType] = { ggData.hitTest.gravityType _ gravityType; }; Gravity: PUBLIC PROC [ggData: GGData] RETURNS [BOOL] = { RETURN[AtomButtons.GetButtonState[ggData.hitTest.gravButton] = on]; }; SetGravity: PUBLIC PROC [ggData: GGData, gravityOn: BOOL] = { AtomButtons.SetButtonState[ggData.hitTest.gravButton, IF gravityOn THEN on ELSE off]; }; Midpoints: PUBLIC PROC [ggData: GGData] RETURNS [BOOL] = { RETURN[AtomButtons.GetButtonState[ggData.hitTest.midpointButton] = on]; }; SetMidpoints: PUBLIC PROC [ggData: GGData, midpointsOn: BOOL] = { AtomButtons.SetButtonState[ggData.hitTest.midpointButton, IF midpointsOn THEN on ELSE off]; }; Heuristics: PUBLIC PROC [ggData: GGData] RETURNS [BOOL] = { RETURN[AtomButtons.GetButtonState[ggData.hitTest.heuristicsButton] = on]; }; SetHeuristics: PUBLIC PROC [ggData: GGData, heuristicsOn: BOOL] = { AtomButtons.SetButtonState[ggData.hitTest.heuristicsButton, IF heuristicsOn THEN on ELSE off]; }; ShowAlignments: PUBLIC PROC [ggData: GGData] RETURNS [BOOL] = { RETURN[NOT ggData.camera.hideAlignments]; }; SetShowAlignments: PUBLIC PROC [ggData: GGData, showAlignments: BOOL] = { ggData.camera.hideAlignments _ NOT showAlignments; }; GetSelectMode: PUBLIC PROC [ggData: GGData] RETURNS [selectMode: SelectMode] = { RETURN[ggData.drag.selectState]; }; SetSelectMode: PUBLIC PROC [ggData: GGData, selectMode: SelectMode] = { ggData.drag.selectState _ selectMode; }; GetExtendMode: PUBLIC PROC [ggData: GGData] RETURNS [extendMode: ExtendMode] = { RETURN[ggData.drag.extendMode]; }; SetExtendMode: PUBLIC PROC [ggData: GGData, extendMode: ExtendMode] = { ggData.drag.extendMode _ extendMode; }; precomputeMidpoints: BOOL _ FALSE; PrecomputeMidpoints: PUBLIC PROC [] RETURNS [BOOL] = { RETURN[precomputeMidpoints]; }; END. όGGStateImpl.mesa Copyright c 1986 by Xerox Corporation. All rights reserved. Last edited by Bier on March 4, 1987 4:40:22 pm PST Contents: Routines for getting and setting values in the Gargoyle user interface state. Debugging and Experiments Κd˜J˜Icodešœ™Kšœ Οmœ1™Kšžœ=˜CK˜—šŸ œžœžœžœ˜AKšœ6žœ žœžœ˜VK˜K˜—šŸœžœžœžœ˜SKšžœ˜#K˜—šŸœžœžœ/˜JKšœ)˜)K˜K˜—š Ÿœžœžœžœžœ˜8Kšžœ=˜CK˜—šŸ œžœžœžœ˜=Kšœ6žœ žœžœ˜UK˜K˜—š Ÿ œžœžœžœžœ˜:KšžœA˜GK˜—šŸ œžœžœžœ˜AKšœ:žœ žœžœ˜[K˜K˜—š Ÿ œžœžœžœžœ˜;KšžœC˜IK˜—šŸ œžœžœ žœ˜CKšœ<žœžœžœ˜^K˜K˜—š Ÿœžœžœžœžœ˜?Kšžœžœ˜)K˜—šŸœžœžœ"žœ˜IKšœžœ˜2K˜K˜—šŸ œžœžœžœ˜PKšžœ˜ K˜—šŸ œžœžœ-˜GKšœ%˜%K˜K˜—šŸ œžœžœžœ˜PKšžœ˜K˜—šŸ œžœžœ-˜GKšœ$˜$K˜K˜—K™Kšœžœžœ˜"š Ÿœžœžœžœžœ˜6Kšžœ˜K˜—K˜Kšžœ˜K˜J˜—…— b