DIRECTORY IO, Rope, ViewerClasses; CharDisplays: CEDAR DEFINITIONS = { ROPE: TYPE = Rope.ROPE; Viewer: TYPE = ViewerClasses.Viewer; CharDisplay: TYPE = REF CharDisplayRep; CharDisplayRep: TYPE = RECORD [ class: CharDisplayClass, det: DisplayDetails, name: ROPE, viewer: Viewer _ NIL, fromDisplay: IO.STREAM _ NIL, line, col: INT _ 0, modes: Modes, otherInstanceData: REF ANY _ NIL]; DisplayDetails: TYPE = RECORD [ lines: NAT _ 24, columns: NAT _ 80, autoMargins: BOOL _ TRUE]; CharDisplayClass: TYPE = REF CharDisplayClassRep; CharDisplayClassRep: TYPE = RECORD [ name: ROPE, Init: PROC [cd: CharDisplay, initData: REF ANY], DeleteChar: PROC [cd: CharDisplay], TakeChar: PROC [cd: CharDisplay, char: CHAR], CursorMove: PROC [cd: CharDisplay, line, col: INT, relative: BOOL _ FALSE, doLine, doCol: BOOL _ TRUE], Line: PROC [cd: CharDisplay, insert: BOOL], ClearTo: PROC [cd: CharDisplay, where: Where], ClearAll: PROC [cd: CharDisplay], SetMode: PROC [cd: CharDisplay, mode: Mode, on: BOOL], Emphasize: PROC [cd: CharDisplay, emph: Emph, on: BOOL], Flash: PROC [cd: CharDisplay] ]; Where: TYPE = {EndOfLine, EndOfScreen}; Mode: TYPE = {insertChar, underline, standout}; Modes: TYPE = ARRAY Mode OF BoolDefaultsFalse; BoolDefaultsFalse: TYPE = BOOL _ FALSE; Emph: TYPE = Mode[underline .. standout]; EmphOp: TYPE = {add, subtract, set}; GetClass: PROC [name: ROPE] RETURNS [cdc: CharDisplayClass]; RegClass: PROC [cdc: CharDisplayClass]; Create: PROC [class: CharDisplayClass, name: ROPE _ NIL, det: DisplayDetails _ [], initData: REF ANY _ NIL] RETURNS [cd: CharDisplay]; Split: PROC [l: CharDisplayList, name: ROPE _ NIL] RETURNS [s: CharDisplay]; CharDisplayList: TYPE = LIST OF CharDisplay; }. xCharDisplays.Mesa Last Edited by: Spreitzer, March 13, 1985 0:23:10 am PST Insert/Delete Apply to char at cursor Κξ– "cedar" style˜Icode™J™8K˜KšΟk œœ˜"K˜šΠbx œœ œ˜#K˜Kšœœœ˜Kšœœ˜$K˜Kšœ œœ˜'šœœœ˜K˜K˜Kšœœ˜ Kšœœ˜Kšœ œœœ˜Kšœ œ˜Kšœ ˜ Kšœœœœ˜"—K˜šœœœ˜Kšœœ˜Kšœ œ˜Kšœ œœ˜—K˜Kšœœœ˜1šœœœ˜$Kšœœ˜ KšΟnœœœœ˜0KšŸ œœ˜#KšŸœœœ˜-KšŸ œœœ œœœœ˜gšŸœœœ˜+K™ —KšŸœœ!˜.KšŸœœ˜!KšŸœœ#œ˜6šŸ œœ#œ˜8K™—KšŸœœ˜K˜—K˜Kšœœ˜'K˜Kšœœ%˜/Kšœœœœ˜.Kšœœœœ˜'Kšœœ˜)Kšœœ˜$K˜KšŸœœœœ˜