DIRECTORY Graphics, IO, Real, Rope, TableBase, TSOutput, TSTypes; TableSelection: CEDAR DEFINITIONS = { OPEN TableBase; KindOfSelection: TYPE = {box, row, column, table}; BeforeOrAfter: TYPE = {before, after}; Selection: TYPE = REF SelectionRec; SelectionRec: TYPE = RECORD [ table: RefTable _ NIL, kind: KindOfSelection _ box, list: LIST OF SelectedThing _ NIL, insertion: BeforeOrAfter _ before ]; SelectedThing: TYPE ~ REF SelectedThingRec; SelectedThingRec: TYPE ~ RECORD [ box: RefTableBox _ NIL, grid1, grid2: GridNumber _ 0 ]; NewSelection: PROCEDURE [table: TableBase.RefTable] RETURNS [sel: Selection]; AnEmptySelection: PROCEDURE [sel: Selection] RETURNS [BOOLEAN]; ASingleSelection: PROCEDURE [sel: Selection] RETURNS [BOOLEAN]; ResolveToBox: PROCEDURE [table: RefTable, x, y: TSTypes.Dimn] RETURNS [box: RefTableBox]; SelectBox: PROCEDURE [table: RefTable, box: RefTableBox, kind: KindOfSelection] RETURNS [sel: Selection]; GrowSelection: PROCEDURE [sel: Selection, which: RowOrColumn]; }. ¨TableSelection.Mesa Created by Rick Beach, September 23, 1984 8:47:49 pm PDT x, y must be within the bounding box of table and relative to its coordinate system Κ]˜™J™8—unitšΟk ˜ Jšœ7˜7J˜—šœœ œ˜%Kšœ ˜—J™Kšœœ˜2Kšœœ˜&Kšœ œœ˜#šœœœ˜Jšœœ˜J˜Jšœœœœ˜"J˜!J˜—Kšœœœ˜+šœœœ˜!Jšœœ˜J˜J˜—KšΟn œ œœ˜MKšžœ œœœ˜?Kšžœ œœœ˜?šž œ œ'œ˜YIdefault™S—Kšž œ œ<œ˜iKšž œ œ&˜>J˜J˜—…—ξσ