DIRECTORY BiScrollers, OrderedSymbolTableRef, SchemeRep, ViewerClasses, ViewRec; SchemeEditing: CEDAR DEFINITIONS = BEGIN OPEN SchemeRep; Viewer: TYPE = ViewerClasses.Viewer; RecordViewer: TYPE = ViewRec.RecordViewer; BiScroller: TYPE = BiScrollers.BiScroller; Session: TYPE = REF SessionRep; SessionRep: TYPE = RECORD [ name: ROPE, typesMenu: Viewer, ctlRV: RecordViewer, ctlPanel: CtlPanel, editors: LIST OF Editor _ NIL, mostRecentEditor: Editor _ NIL, typesTable: Table, picsTable: Table ]; Editor: TYPE = REF EditorRep; EditorRep: TYPE = RECORD [ session: Session, bs: BiScroller, v: Viewer, subjectPic: PictureDef, subjectCell: CellType, subjectClass: SubjectClass, oldHor: BOOLEAN _ TRUE, primary, secondary: PointBack, moveSubject: Vertex _ [NIL, NIL], strandGoal: Point _ NIL]; SubjectClass: TYPE = {icon, expansion}; PointBack: TYPE = REF PointBackRep; PointBackRep: TYPE = RECORD [ x, y: REAL _ 0, sx, sy: REAL _ 1, primary: BOOLEAN, cx, cy: Coord _ NIL, point: Point _ NIL]; CtlPanel: TYPE = REF CtlPanelRep; CtlPanelRep: TYPE = RECORD [ Clear: PROC [session: Session], ReadFile: PROC [session: Session, file: ROPE, additively: BOOLEAN _ TRUE], WriteFile: PROC [session: Session, file: ROPE], CreateCellType: PROC [session: Session, name: ROPE], CreateIcon: PROC [session: Session, cellTypeName, iconName: ROPE], EditType: PROC [session: Session, cellTypeName, iconName: ROPE, part: SubjectClass], Export: PROC [session: Session, export: BOOLEAN], action: Action _ create, iconAction: IconWhat _ line, expansionAction: ExpansionAction _ strand, cellType, icon, name: ROPE _ NIL]; Action: TYPE = {create, delete}; IconWhat: TYPE = {line, text, instance}; ExpansionAction: TYPE = {component, port, strand}; editorClasses: ARRAY SubjectClass OF BiScrollers.BiScrollerClass; axisNames: ARRAY Axis OF ROPE; CompareNames: OrderedSymbolTableRef.CompareProc; Filter: PROC [list: LORA, elt: REF ANY] RETURNS [filtered: LORA]; Complain: PROC [editor: Editor, complaint: ROPE]; DestroyEditor: ViewerClasses.DestroyProc; NewPicture: PROC [session: Session, name: ROPE] RETURNS [pic: PictureDef]; NewCoord: PROC [axis: Axis, at: REAL, pic: PictureDef, parent: REF ANY _ NIL, name: ROPE _ NIL] RETURNS [new: Coord]; EntableCoord: PROC [table: Table, coord: Coord]; Scavengeable: PROC [coord: Coord] RETURNS [s: BOOLEAN]; DeleteCoord: PROC [coord: Coord]; MakePoint: PROC [pic: PictureDef, vertex: Vertex, name: ROPE _ NIL] RETURNS [point: Point]; NewPoint: PROC [pic: PictureDef, name: ROPE, vertex: Vertex] RETURNS [point: Point]; DeletePoint: PROC [from: PictureDef, point: Point]; NewLine: PROC [pic: PictureDef, a, b: Point] RETURNS [line: Line]; DeleteLine: PROC [pic: PictureDef, a, b: Point, line: Line _ NIL]; NewText: PROC [pic: PictureDef, p: Point, rope: ROPE]; DeleteText: PROC [pic: PictureDef, at: Point, text: Text _ NIL]; NewInstance: PROC [pic: PictureDef, p: Point, className, iconName: ROPE]; CreateInstance: PROC [in, of: PictureDef, org: Point] RETURNS [pi: PictureInstance]; DeleteInstance: PROC [pic: PictureDef, at: Point, pi: PictureInstance _ NIL]; EnsureCoord: PROC [pic: PictureDef, name: ROPE] RETURNS [coord: Coord]; EnsurePictureInstance: PROC [pic: PictureDef, name: ROPE] RETURNS [pi: PictureInstance]; PIPointName: PROC [piName, pointName: ROPE] RETURNS [piPointName: ROPE]; NewName: PROC [for: Table] RETURNS [name: ROPE]; NewCellType: PROC [session: Session, name: ROPE, skeletal: BOOLEAN] RETURNS [cellType: CellType]; CreatePort: PROC [cellType: CellType, name: ROPE, point: Point] RETURNS [port: Port]; CreateComponent: PROC [in, of: CellType, name: ROPE, inst: PictureInstance] RETURNS [comp: Component]; Clear: PROC [session: Session]; ReadFile: PROC [session: Session, file: ROPE, additively: BOOLEAN _ TRUE]; WriteFile: PROC [session: Session, file: ROPE]; CreateCellType: PROC [session: Session, name: ROPE]; CreateIcon: PROC [session: Session, cellTypeName, iconName: ROPE]; EditType: PROC [session: Session, cellTypeName, iconName: ROPE, part: SubjectClass]; NewComponent: PROC [editor: Editor]; NewPort: PROC [editor: Editor]; NewStrand: PROC [editor: Editor, final: BOOLEAN]; DeleteComponent: PROC [editor: Editor]; DeletePort: PROC [editor: Editor]; DeleteStrand: PROC [editor: Editor]; BreakWire: PROC [editor: Editor, input: LORA] RETURNS [output: LORA]; JoinWire: PROC [editor: Editor, input: LORA] RETURNS [output: LORA]; FindPI: PROC [at: Point] RETURNS [pi: PictureInstance]; FindLine: PROC [a, b: Point] RETURNS [line: Line]; NotifyCoord: PROC [coord: Coord, editor: Editor]; NotifyLabels: PROC [labels: LORA, editor: Editor]; SetBackToPoint: PROC [editor: Editor, pb: PointBack, p: Point]; END. ΆScheme>SchemeEditing.Mesa Last Edited by: Spreitzer, February 12, 1984 10:19 pm Picture Create Procs: Cell Create Procs: File IO & Such: Cell Operations: Picture Operations: Κ– "cedar" style˜Icode™Jšœ5™5K˜KšΟk œG˜PK˜KšΠbx œœ œ˜"K˜Kšœœ ˜K˜Kšœœ˜$Kšœœ˜*Kšœ œ˜*K˜š œ œœœœ˜;Kšœœ˜ Kšœ˜Kšœ˜K˜Kšœ œœ œ˜Kšœœ˜K˜K˜Kšœ˜—K˜š œœœœœ˜8K˜K˜K˜ K˜Kšœ˜K˜Kšœœœ˜K˜Kšœœœ˜!Kšœœ˜—K˜Kšœœ˜'K˜š œ œœœœ˜AKšœœ˜Kšœœ˜Kšœ œ˜Kšœœ˜Kšœœ˜—K˜š œ œœœœ˜>KšΟnœœ˜Kš Ÿœœœœœ˜JKšŸ œœœ˜/KšŸœœœ˜4KšŸ œœ,œ˜BKšŸœœ,œ˜TKšŸœœœ˜1K˜Kšœ˜Kšœ*˜*Kšœœœ˜"—K˜Kšœœ˜ Kšœ œ˜(Kšœœ˜2K˜Kšœœœ˜AKšœ œœœ˜K˜KšŸ œ$˜0K˜KšŸœœœœœœ œ˜AK˜KšŸœœœ˜1K˜KšŸ œ˜)K˜™K™KšŸ œœœœ˜JK˜KšŸœœœœœœœœœ˜uK˜KšŸ œœ˜0K˜KšŸ œœœœ˜7K˜KšŸ œœ˜!K˜Kš Ÿ œœ)œœœ˜[K˜KšŸœœœœ˜TK˜KšŸ œœ"˜3K˜KšŸœœ œ˜BK˜KšŸ œœ-œ˜BK˜KšŸœœ#œ˜6K˜KšŸ œœ+œ˜@K˜KšŸ œœ2œ˜IK˜KšŸœœ"œ˜TK˜KšŸœœ4œ˜MK˜KšŸ œœœœ˜GK˜KšŸœœœœ˜XK˜Kš Ÿ œœœœœ˜HK˜KšŸœœœœ˜0K˜—™K˜Kš Ÿ œœœ œœ˜aK˜KšŸ œœœœ˜UK˜KšŸœœœœ˜fK˜—™K˜KšŸœœ˜K˜Kš Ÿœœœœœ˜JK˜KšŸ œœœ˜/K˜—™K˜KšŸœœœ˜4K˜KšŸ œœ,œ˜BK˜KšŸœœ,œ˜TK˜KšŸ œœ˜$K˜KšŸœœ˜K˜KšŸ œœœ˜1K˜KšŸœœ˜'K˜KšŸ œœ˜"K˜KšŸ œœ˜$K˜Kš Ÿ œœœœ œ˜EK˜Kš Ÿœœœœ œ˜DK˜—™K˜KšŸœœ œ˜7K˜KšŸœœœ˜2K˜KšŸ œœ ˜1K˜KšŸ œœ œ˜2K˜KšŸœœ+˜?K˜—Kšœ˜—…—h»