<> <> <> <> <> <> <> <> <> <> <> DIRECTORY DBDefs, Rope, ViewerClasses; Nut: CEDAR DEFINITIONS = BEGIN OPEN DBDefs; ROPE: TYPE = Rope.ROPE; Viewer: TYPE = ViewerClasses.Viewer; <> <<>> NutProc: TYPE = PROC[eName, domain: ROPE, segment: Segment, parent: Viewer _ NIL]; <> <<>> NoRegistration: ERROR; <<>> Register: PROC[domain: ROPE, segment: Segment, display: NutProc _ NIL, edit: NutProc _ NIL]; <> <<>> DeRegister: PROC[domain: ROPE, segment: Segment]; <> <<>> Push: PROC[ domain: ROPE, segment: Segment, display: NutProc _ NIL, edit: NutProc _ NIL]; <> <<>> Pop: PROC[domain: ROPE, segment: Segment]; <> <<>> RegistrationExists: PROC[domain: ROPE, segment: Segment] RETURNS[ok: BOOL]; <> Display: PROC[eName, domain: ROPE, segment: Segment, parent: Viewer _ NIL]; <> Edit: PROC[eName, domain: ROPE, segment: Segment, parent: Viewer _ NIL]; <> <> SetSpawnedProperty: PROC[of: Viewer, is: Viewer] RETURNS[previous: Viewer]; <> <<>> GetSpawnedProperty: PROC[of: Viewer] RETURNS[current: Viewer]; <> <<>> GetSpawnedParent: PROC[of: Viewer] RETURNS[parent: Viewer]; <> SetFrozenProperty: PROC[v: Viewer, new: BOOL] RETURNS[previous: BOOL]; <> <<>> GetFrozenProperty: PROC[v: Viewer] RETURNS[current: BOOL]; <> <<>> GetNutInfo: PROC[v: Viewer] RETURNS[segment: Segment, domain, entity: ROPE]; <> <<>> CopyNutInfo: PROC[from: Viewer, to: Viewer]; <> <<>> ChangeName: PROC [v: Viewer, newName: Rope.ROPE]; <> <<>> EntityNameForViewer: PROC [v: Viewer] RETURNS [entityName: ROPE]; <> SetNutInfo: PROC[v: Viewer, segment: Segment, domain, entity: ROPE]; <> <<>> END. . . Change Log: Edited by Rick on March 18, 1982 11:50 am: Major reorganization. Register now allows registration of all or some of the three procedures, and replaces any previous registration for that domain with the new one. Edit take init REF ANY. DisplayProc, EditProc, QueryProc take new viewer on calls out from Nut, old viewer on calls into Nut. Added close and open notify procs. Edited by Rick on March 25, 1982 4:29 pm: Added user interaction procs section, dump and load stuff. WSH on April 1, 1982: added MessageConfirm Rick on April 3, 1982 4:29 pm: added width option to button. Added CreateProc feature. Willie-Sue on July 8, 1982: changed EnumerateNutList, created NutPrivate.mesa, NutListImpl.mesa Willie-Sue on July 27, 1982: changed EnumerateNutList to return LIST OF NutRec. Cattell on August 5, 1982 7:11 pm: added init parm to Display, Create procs. Added GetDBTransaction proc. Maxwell on September 8, 1982 9:29 am: moved procedures to Palm and SquirrelOps Cattell on April 12, 1983 1:16 pm: fixed up some outdated comments. Butler on June 26, 1984 3:58:24 pm PDT: Major rewrite has been completed. Push, PushDefaults, and Pop have been added. Display, Edit, and Query now take the same arguments in the same order. See NutImpl for details of implementation changes. Donahue on July 12, 1984 1:01:04 pm PDT: Changed structure of Nut one final time: Domain is passed as a ROPE, so that no opportunities for DB aborts can arise. All procs take a "parent" viewer as argument and pass "last spawned" viewer to the display, etc. proc registered. Freeze moved here from NutViewer and changed slightly. Donahue on September 13, 1984 12:00:42 pm PDT: Two major changes: threw away query procs -- nobody implements them anyhow. And, removed PushDefaults, which used to register default displayers and editors. The new religion is that Squirrel will use its own version of Cypress and will handle its own transactions on the database -- thus, it will not register defaults for use by other clients, but will keep them hidden within itself. (Squirrel will be willing to use registrations made by other applications, though.)