(FILECREATED "25-Nov-85 12:53:22" {QV}<PEDERSEN>LISP>TWODINSPECTOR.;20 103435 changes to: (FNS TWODINSPECT.BUTTONEVENTFN ONEDINSPECT.BUTTONEVENTFN ONEDINSPECT.RIGHTW.BUTTONEVENTFN TWODINSPECT.RIGHTW.BUTTONEVENTFN TWODINSPECT.TOPW.BUTTONEVENTFN) (RECORDS ICMLARRAY.ACTIVEREGION ONEDINSPECT.SELECTION TWODINSPECT.SELECTION) previous date: "20-Nov-85 20:25:43" {QV}<PEDERSEN>LISP>TWODINSPECTOR.;19) (* Copyright (c) 1985, 1900 by Xerox Corporation. All rights reserved.) (PRETTYCOMPRINT TWODINSPECTORCOMS) (RPAQQ TWODINSPECTORCOMS ((FNS ONEDINSPECT.PROPWIDTH ONEDINSPECT.REDISPLAY ONEDINSPECT.VALUEWIDTH ONEDINSPECT.ADJUSTPROPSELECTION ONEDINSPECT.ADJUSTSELECTION ONEDINSPECT.ARRANGEWINDOWS ONEDINSPECT.BUTTONEVENTFN ONEDINSPECT.CLOSEFN ONEDINSPECT.DEFAULT.TITLECOMMANDFN ONEDINSPECT.DEFAULT.VALUECOMMANDFN ONEDINSPECT.INVERTSELECTION ONEDINSPECT.MAKEREGIONS ONEDINSPECT.PRINTELEMENT ONEDINSPECT.REPAINTFN ONEDINSPECT.REPLACE ONEDINSPECT.RESHAPEFN ONEDINSPECT.RIGHTW.BUTTONEVENTFN ONEDINSPECT.RIGHTW.REPAINTFN ONEDINSPECT.RIGHTW.RESHAPEFN ONEDINSPECT.SCROLLFN ONEDINSPECT.SELECTITEM ONEDINSPECT.SELECTPROP ONEDINSPECT.SETELT ONEDINSPECTW.CREATE TWODINSPECT.COLUMNWIDTH TWODINSPECT.COLUMNWIDTHS TWODINSPECT.CLOSEFN TWODINSPECT.ARRANGEWINDOWS TWODINSPECTW.CREATE TITLEW.BUTTONEVENTFN TWODINSPECT.DEFAULT.TITLECOMMANDFN TITLEW.REPAINTFN TWODINSPECT.INVERTREGION TWODINSPECT.BUTTONEVENTFN TWODINSPECT.DEFAULT.VALUECOMMANDFN TWODINSPECT.DOWINDOWCOMFN TWODINSPECT.MAKEREGIONS TWODINSPECT.PRINTELEMENT TWODINSPECT.REDISPLAY TWODINSPECT.INVERTSELECTION TWODINSPECT.ADJUSTCOLUMNSELECTION TWODINSPECT.ADJUSTROWSELECTION TWODINSPECT.ADJUSTSELECTION TWODINSPECT.REPAINTFN TWODINSPECT.RESHAPEFN TWODINSPECT.ROWPROPWIDTH TWODINSPECT.SCROLLFN TWODINSPECT.SELECTCOLUMNPROP TWODINSPECT.SELECTITEM TWODINSPECT.SELECTROWPROP TWODINSPECT.SETELT TWODINSPECT.REPLACE TWODINSPECT.RIGHTW.BUTTONEVENTFN TWODINSPECT.RIGHTW.REPAINTFN TWODINSPECT.RIGHTW.RESHAPEFN TWODINSPECT.TOPW.BUTTONEVENTFN TWODINSPECT.TOPW.REPAINTFN TWODINSPECT.TOPW.RESHAPEFN TWODINSPECT.TOTALWIDTH LISTNCHARS LISTSTRREGION LISTSTRWIDTH PLNCHARS PLSTRINGREGION PLSTRINGWIDTH) (INITVARS INSPECTORFONT) (GLOBALVARS INSPECTORFONT) (INITRECORDS ICMLARRAY.ACTIVEREGION ONEDINSPECT.SELECTION TWODINSPECT.SELECTION) (DECLARE: DOEVAL@COMPILE DONTCOPY (RECORDS ICMLARRAY.ACTIVEREGION ONEDINSPECT.SELECTION TWODINSPECT.SELECTION)) (DECLARE: DONTEVAL@LOAD DOEVAL@COMPILE DONTCOPY (LOCALVARS . T)))) (DEFINEQ (ONEDINSPECT.PROPWIDTH [LAMBDA (PROPS FONT) (* jop: " 1-Oct-85 22:02") (* * Computes the MIN fieldwidth for the COLUMNPROP column of SLICE) (RESETLST [RESETSAVE (PRINTLEVEL (QUOTE (2 . 5] (RESETSAVE *PRINT-ARRAY* NIL) (PLSTRINGWIDTH (for PROP in PROPS largest (PLSTRINGWIDTH PROP FONT)) FONT]) (ONEDINSPECT.REDISPLAY [LAMBDA (WINDOW ELTPROPS) (* jop: "31-Dec-00 19:45") (* * ELTPROPS may be a single entries, a list, or NIL. If NIL than the whole inspector is refetched and redisplayed) (if (AND ELTPROPS (NLISTP ELTPROPS)) then (SETQ ELTPROPS (LIST ELTPROPS))) (RESETLST [RESETSAVE (PRINTLEVEL (QUOTE (2 . 5] (RESETSAVE PLVLFILEFLG T) (RESETSAVE *PRINT-ARRAY* NIL) (PROG ((FETCHFN (WINDOWPROP WINDOW (QUOTE FETCHFN))) (DATUM (WINDOWPROP WINDOW (QUOTE DATUM))) (VERTMARKS (WINDOWPROP WINDOW (QUOTE VERTMARKS))) (PROPS (WINDOWPROP WINDOW (QUOTE PROPS))) (VALUEWIDTH (WINDOWPROP WINDOW (QUOTE VALUEWIDTH))) (SELECTION (WINDOWPROP WINDOW (QUOTE SELECTION))) ELTWIDTHS ELTS ELTBOTTOMS) (SETQ ELTS (for PROP in ELTPROPS collect (APPLY* FETCHFN DATUM PROP) )) (SETQ ELTWIDTHS (for ELT in ELTS collect (PLSTRINGWIDTH ELT WINDOW)) ) [SETQ ELTBOTTOMS (for ELTPROP in ELTPROPS collect (for VMARK in VERTMARKS as PROP in PROPS thereis (EQUAL PROP ELTPROP] (if (AND ELTS (for ELTWIDTH in ELTWIDTHS never (IGREATERP ELTWIDTH VALUEWIDTH))) then (ONEDINSPECT.INVERTSELECTION WINDOW) (bind (FHEIGHT ←(FONTPROP WINDOW (QUOTE HEIGHT))) (FDESCENT ←(FONTPROP WINDOW (QUOTE DESCENT))) for ELT in ELTS as BOTTOM in ELTBOTTOMS do (BITBLT NIL NIL NIL WINDOW 0 BOTTOM VALUEWIDTH FHEIGHT (QUOTE TEXTURE) (QUOTE REPLACE) WHITESHADE) (ONEDINSPECT.PRINTELEMENT ELT BOTTOM FDESCENT WINDOW)) (ONEDINSPECT.ADJUSTSELECTION WINDOW) (ONEDINSPECT.INVERTSELECTION WINDOW) else (* Recompute the whole picture) (WINDOWPROP WINDOW (QUOTE VALUEWIDTH) NIL) (ONEDINSPECT.MAKEREGIONS WINDOW) (ONEDINSPECT.ADJUSTSELECTION WINDOW) (DSPRESET WINDOW) (ONEDINSPECT.REPAINTFN WINDOW) (DSPRESET (WINDOWPROP WINDOW (QUOTE RIGHTWINDOW))) (ONEDINSPECT.RIGHTW.REPAINTFN (WINDOWPROP WINDOW (QUOTE RIGHTWINDOW]) (ONEDINSPECT.VALUEWIDTH [LAMBDA (DATUM PROPS FETCHFN FONT) (* jop: " 2-Oct-85 00:04") (* * Computes the MIN fieldwidth for the COLUMNPROP column of SLICE) (RESETLST [RESETSAVE (PRINTLEVEL (QUOTE (2 . 5] (RESETSAVE *PRINT-ARRAY* NIL) (PLSTRINGWIDTH (APPLY* FETCHFN DATUM (for PROP in PROPS largest (PLSTRINGWIDTH (APPLY* FETCHFN DATUM PROP) FONT))) FONT]) (ONEDINSPECT.ADJUSTPROPSELECTION [LAMBDA (WINDOW) (* jop: " 1-Oct-85 23:32") (PROG ((SELECTION (WINDOWPROP WINDOW (QUOTE SELECTION))) (MAINWINDOW (MAINWINDOW WINDOW))) (if SELECTION then (RESETLST [RESETSAVE (PRINTLEVEL (QUOTE (2 . 5] (RESETSAVE *PRINT-ARRAY* NIL) (PROG ((PROPSPACE (WINDOWPROP MAINWINDOW (QUOTE PROPSPACE))) (PROPS (WINDOWPROP MAINWINDOW (QUOTE PROPS))) (VERTMARKS (WINDOWPROP MAINWINDOW (QUOTE VERTMARKS))) (SELPROP (fetch (ONEDINSPECT.SELECTION PROP) of SELECTION)) SELBOTTOM SELWIDTH SELLEFT) (SETQ SELBOTTOM (for VMARK in VERTMARKS as PROP on PROPS thereis (EQ PROP SELPROP))) (SETQ SELWIDTH (PLSTRINGWIDTH (CAR SELPROP) WINDOW)) (SETQ SELLEFT (STRINGWIDTH PROPSPACE WINDOW)) (WINDOWPROP WINDOW (QUOTE SELECTION) (create ONEDINSPECT.SELECTION PROP ← SELPROP ELTBOTTOM ← SELBOTTOM ELTWIDTH ← SELWIDTH ELTLEFT ← SELLEFT]) (ONEDINSPECT.ADJUSTSELECTION [LAMBDA (WINDOW) (* jop: " 2-Oct-85 00:10") (PROG [(SELECTION (WINDOWPROP WINDOW (QUOTE SELECTION] (COND (SELECTION (RESETLST [RESETSAVE (PRINTLEVEL (QUOTE (2 . 5] (RESETSAVE *PRINT-ARRAY* NIL) (PROG ((DATUM (WINDOWPROP WINDOW (QUOTE DATUM))) (FETCHFN (WINDOWPROP WINDOW (QUOTE FETCHFN))) (PROPS (WINDOWPROP WINDOW (QUOTE PROPS))) (VERTMARKS (WINDOWPROP WINDOW (QUOTE VERTMARKS))) (SELPROP (fetch (ONEDINSPECT.SELECTION PROP) of SELECTION))) (WINDOWPROP WINDOW (QUOTE SELECTION) (create ONEDINSPECT.SELECTION PROP ← SELPROP ELTBOTTOM ←(for VMARK in VERTMARKS as PROP on PROPS thereis (EQ PROP SELPROP)) ELTWIDTH ←(PLSTRINGWIDTH (APPLY* FETCHFN DATUM (CAR SELPROP)) WINDOW) ELTLEFT ← 0]) (ONEDINSPECT.ARRANGEWINDOWS [LAMBDA (DISPLAYWINDOW RIGHTWINDOW TITLEWINDOW TOTALLEFT TOTALBOTTOM TOTALWIDTH TOTALHEIGHT TOPRIGHT) (* jop: " 6-Oct-85 13:39") (* * REGION should be the total available area) (PROG ((PROPS (WINDOWPROP DISPLAYWINDOW (QUOTE PROPS))) (PROPWIDTH (WINDOWPROP DISPLAYWINDOW (QUOTE PROPWIDTH))) (PROPSPACE (WINDOWPROP DISPLAYWINDOW (QUOTE PROPSPACE))) (VALUEWIDTH (WINDOWPROP DISPLAYWINDOW (QUOTE VALUEWIDTH))) (VALUESPACE (WINDOWPROP DISPLAYWINDOW (QUOTE VALUESPACE))) TOTALRIGHT TOTALTOP DWHEIGHT DWWIDTH TITLEHEIGHT RWWIDTH DWLEFT DWBOTTOM) [SETQ TITLEHEIGHT (HEIGHTIFWINDOW (FONTPROP TITLEWINDOW (QUOTE HEIGHT)) NIL (WINDOWPROP TITLEWINDOW (QUOTE BORDER] [SETQ RWWIDTH (WIDTHIFWINDOW (IPLUS (STRINGWIDTH PROPSPACE RIGHTWINDOW) PROPWIDTH) (WINDOWPROP RIGHTWINDOW (QUOTE BORDER] (if (NULL TOTALHEIGHT) then [SETQ DWHEIGHT (IMIN 500 (HEIGHTIFWINDOW (ITIMES (FONTPROP DISPLAYWINDOW (QUOTE HEIGHT)) (LENGTH PROPS)) NIL (WINDOWPROP DISPLAYWINDOW (QUOTE BORDER] (SETQ TOTALHEIGHT (IPLUS TITLEHEIGHT DWHEIGHT)) else (SETQ DWHEIGHT (IDIFFERENCE TOTALHEIGHT TITLEHEIGHT))) (if (NULL TOTALWIDTH) then [SETQ DWWIDTH (IMIN 200 (WIDTHIFWINDOW (IPLUS VALUEWIDTH (STRINGWIDTH VALUESPACE DISPLAYWINDOW)) (WINDOWPROP DISPLAYWINDOW (QUOTE BORDER] (SETQ TOTALWIDTH (IPLUS RWWIDTH DWWIDTH)) else (SETQ DWWIDTH (IDIFFERENCE TOTALWIDTH RWWIDTH))) [if (POSITIONP TOPRIGHT) then (SETQ TOTALRIGHT (fetch XCOORD of TOPRIGHT)) (SETQ TOTALTOP (fetch YCOORD of TOPRIGHT)) elseif (AND TOTALLEFT TOTALBOTTOM) then (SETQ TOTALRIGHT (IPLUS TOTALLEFT (SUB1 TOTALWIDTH))) (SETQ TOTALTOP (IPLUS TOTALBOTTOM (SUB1 TOTALHEIGHT))) else (LET ((REGION (GETBOXREGION TOTALWIDTH TOTALHEIGHT NIL NIL NIL "Position Inspector window"))) (SETQ TOTALTOP (fetch TOP of REGION)) (SETQ TOTALRIGHT (fetch RIGHT of REGION] [SETQ DWLEFT (DIFFERENCE TOTALRIGHT (SUB1 (PLUS DWWIDTH RWWIDTH] (if (ILESSP DWLEFT 0) then (SETQ DWLEFT 0) (SETQ DWWIDTH (DIFFERENCE (ADD1 TOTALRIGHT) RWWIDTH))) [SETQ DWBOTTOM (DIFFERENCE TOTALTOP (SUB1 (PLUS DWHEIGHT TITLEHEIGHT] (if (LESSP DWBOTTOM 0) then (SETQ DWBOTTOM 0) (SETQ DWHEIGHT (DIFFERENCE (ADD1 TOTALTOP) TITLEHEIGHT))) (* * put up the window group) (WINDOWPROP DISPLAYWINDOW (QUOTE MINSIZE) (CONS 0 0)) (SHAPEW DISPLAYWINDOW (CREATEREGION DWLEFT DWBOTTOM DWWIDTH DWHEIGHT)) (* Need to set the Minsize BEFORE reshaping else we catch the default minsize) (WINDOWPROP RIGHTWINDOW (QUOTE MINSIZE) (CONS RWWIDTH 0)) (WINDOWPROP RIGHTWINDOW (QUOTE MAXSIZE) (CONS RWWIDTH MAX.SMALLP)) (SHAPEW RIGHTWINDOW (CREATEREGION [ADD1 (fetch RIGHT of (WINDOWPROP DISPLAYWINDOW (QUOTE REGION] DWBOTTOM RWWIDTH DWHEIGHT)) (ATTACHWINDOW RIGHTWINDOW DISPLAYWINDOW (QUOTE RIGHT)) (WINDOWPROP TITLEWINDOW (QUOTE MINSIZE) (CONS 0 TITLEHEIGHT)) (WINDOWPROP TITLEWINDOW (QUOTE MAXSIZE) (CONS MAX.SMALLP TITLEHEIGHT)) (SHAPEW TITLEWINDOW (CREATEREGION DWLEFT [ADD1 (fetch TOP (WINDOWPROP DISPLAYWINDOW (QUOTE REGION] TOTALWIDTH TITLEHEIGHT)) (ATTACHWINDOW TITLEWINDOW DISPLAYWINDOW (QUOTE TOP)) (RETURN DISPLAYWINDOW]) (ONEDINSPECT.BUTTONEVENTFN [LAMBDA (WINDOW) (* jop: "25-Nov-85 12:45") (* *) (TOTOPW WINDOW) (PROG ((DATUM (WINDOWPROP WINDOW (QUOTE DATUM))) (FETCHFN (WINDOWPROP WINDOW (QUOTE FETCHFN))) (PROPS (WINDOWPROP WINDOW (QUOTE PROPS))) (VERTMARKS (WINDOWPROP WINDOW (QUOTE VERTMARKS))) (SELECTION (WINDOWPROP WINDOW (QUOTE SELECTION))) SELECTEDPROP SELECTEDELTBOTTOM SELECTEDELTLEFT SELECTEDELTWIDTH) (if SELECTION then (SETQ SELECTEDPROP (fetch (ONEDINSPECT.SELECTION PROP) of SELECTION)) (SETQ SELECTEDELTBOTTOM (fetch (ONEDINSPECT.SELECTION ELTBOTTOM) of SELECTION)) (SETQ SELECTEDELTLEFT (fetch (ONEDINSPECT.SELECTION ELTLEFT) of SELECTION)) (SETQ SELECTEDELTWIDTH (fetch (ONEDINSPECT.SELECTION ELTWIDTH) of SELECTION))) (if (MOUSESTATE LEFT) then [RESETLST [RESETSAVE (PRINTLEVEL (QUOTE (2 . 5] (RESETSAVE *PRINT-ARRAY* NIL) (bind (FHEIGHT ←(FONTPROP WINDOW (QUOTE HEIGHT))) CURSOR NEWPROP NEWVERTMARK NEWELTWIDTH repeatwhile (MOUSESTATE LEFT) do (SETQ CURSOR (CURSORPOSITION NIL WINDOW)) (bind (Y ←(fetch YCOORD of CURSOR)) for PROP on PROPS as VERTMARK in VERTMARKS until (ILESSP VERTMARK Y) finally (SETQ NEWPROP PROP) (SETQ NEWVERTMARK VERTMARK)) (if NEWPROP then (SETQ NEWELTWIDTH (PLSTRINGWIDTH (APPLY* FETCHFN DATUM (CAR NEWPROP)) WINDOW)) (* Select the new region only if the cursor is inside the element box) (if (IGREATERP (fetch XCOORD of CURSOR) NEWELTWIDTH) then (SETQ NEWPROP NIL))) (if (NEQ NEWPROP SELECTEDPROP) then (* We need to consider highlighting a new region) (if SELECTEDPROP then (* Lowlight the old region) (TWODINSPECT.INVERTREGION SELECTEDELTLEFT SELECTEDELTBOTTOM SELECTEDELTWIDTH FHEIGHT WINDOW) (SETQ SELECTEDPROP NIL)) (if NEWPROP then (* cursor inside element box, highlight that box) (TWODINSPECT.INVERTREGION 0 NEWVERTMARK NEWELTWIDTH FHEIGHT WINDOW) (SETQ SELECTEDPROP NEWPROP) (SETQ SELECTEDELTWIDTH NEWELTWIDTH) (SETQ SELECTEDELTLEFT 0) (SETQ SELECTEDELTBOTTOM NEWVERTMARK))) finally (if SELECTEDPROP then (WINDOWPROP WINDOW (QUOTE SELECTION) (create ONEDINSPECT.SELECTION PROP ← SELECTEDPROP ELTWIDTH ← SELECTEDELTWIDTH ELTLEFT ← SELECTEDELTLEFT ELTBOTTOM ← SELECTEDELTBOTTOM)) else (WINDOWPROP WINDOW (QUOTE SELECTION) NIL] else (* MOUSESTATE MIDDLE) (if SELECTION then (APPLY* (WINDOWPROP WINDOW (QUOTE VALUECOMMANDFN)) (APPLY* FETCHFN DATUM (CAR SELECTEDPROP)) (CAR SELECTEDPROP) DATUM WINDOW]) (ONEDINSPECT.CLOSEFN [LAMBDA (WINDOW) (* jop: " 4-Oct-85 17:52") (DETACHALLWINDOWS WINDOW) (WINDOWPROP WINDOW (QUOTE SELECTION) NIL) (WINDOWPROP (WINDOWPROP WINDOW (QUOTE RIGHTWINDOW)) (QUOTE SELECTION) NIL]) (ONEDINSPECT.DEFAULT.TITLECOMMANDFN [LAMBDA (WINDOW) (* jop: " 1-Oct-85 23:19") (* *) (if (MOUSESTATE MIDDLE) then (RESETLST [RESETSAVE (PRINTLEVEL (QUOTE (2 . 5] (RESETSAVE PLVLFILEFLG T) (RESETSAVE *PRINT-ARRAY* NIL) (PROG [[TITLEMENU (CONSTANT (create MENU ITEMS ←(QUOTE ((Refetch (QUOTE REFETCH) "Refetch the datum") ("IT ← Datum" (QUOTE IT) "Bind IT to the inspected datum"] (DATUM (WINDOWPROP WINDOW (QUOTE DATUM] (SELECTQ (MENU TITLEMENU) (REFETCH (ONEDINSPECT.REDISPLAY WINDOW)) (IT (SETQ IT DATUM) (PROMPTPRINT "IT bound to " DATUM)) NIL]) (ONEDINSPECT.DEFAULT.VALUECOMMANDFN [LAMBDA (VALUE PROP DATUM WINDOW) (* jop: "10-Oct-85 20:46") (* *) (PROG [[SETMENU (CONSTANT (create MENU ITEMS ←(QUOTE (("IT ← Selection" (QUOTE IT) "Bind IT to the value of the selected entry") (Set (QUOTE SET) "Set the selected entry"] (INSPECTMENU (CONSTANT (create MENU ITEMS ←(QUOTE ((Inspect (QUOTE INSPECT) "Inspect the value of the selected entry") ("IT ← Selection" (QUOTE IT) "Bind IT to the value of the selected entry") (Set (QUOTE SET) "Set the selected entry"] (SELECTQ (if (OR (NULL VALUE) (NUMBERP VALUE)) then (MENU SETMENU) else (MENU INSPECTMENU)) (INSPECT (INSPECT VALUE)) (IT (SETQ IT VALUE) (RESETLST [RESETSAVE (PRINTLEVEL (QUOTE (2 . 5] (RESETSAVE PLVLFILEFLG T) (RESETSAVE *PRINT-ARRAY* NIL) (PROMPTPRINT "IT bound to " IT))) (SET (ONEDINSPECT.SETELT PROP WINDOW)) NIL]) (ONEDINSPECT.INVERTSELECTION [LAMBDA (WINDOW) (* jop: " 1-Oct-85 22:57") (* * Inverts SELECTION if non-NIL) (PROG [(SELECTION (WINDOWPROP WINDOW (QUOTE SELECTION] (if SELECTION then (TWODINSPECT.INVERTREGION (fetch (ONEDINSPECT.SELECTION ELTLEFT) of SELECTION) (fetch (ONEDINSPECT.SELECTION ELTBOTTOM) of SELECTION) (fetch (ONEDINSPECT.SELECTION ELTWIDTH) of SELECTION) (FONTPROP WINDOW (QUOTE HEIGHT)) WINDOW]) (ONEDINSPECT.MAKEREGIONS [LAMBDA (WINDOW) (* jop: " 6-Oct-85 16:34") (* * Sets up windowprops and activeregions) (PROG ((PROPS (WINDOWPROP WINDOW (QUOTE PROPS))) (VALUEWIDTH (WINDOWPROP WINDOW (QUOTE VALUEWIDTH))) (VALUESPACE (WINDOWPROP WINDOW (QUOTE VALUESPACE))) (WINDOWHEIGHT (WINDOWPROP WINDOW (QUOTE HEIGHT))) (LF (DSPLINEFEED NIL WINDOW)) VERTMARKS) (if (NULL VALUEWIDTH) then (SETQ VALUEWIDTH (ONEDINSPECT.VALUEWIDTH (WINDOWPROP WINDOW (QUOTE DATUM)) PROPS (WINDOWPROP WINDOW (QUOTE FETCHFN)) WINDOW)) (WINDOWPROP WINDOW (QUOTE VALUEWIDTH) VALUEWIDTH)) (* VERTMARKS mark endpoints) (SETQ VERTMARKS (for I from 1 to (LENGTH PROPS) as MARK from (IPLUS WINDOWHEIGHT LF) by LF collect MARK)) (WINDOWPROP WINDOW (QUOTE VERTMARKS) VERTMARKS) [WINDOWPROP WINDOW (QUOTE EXTENT) (CREATEREGION 0 (CAR (LAST VERTMARKS)) (IPLUS VALUEWIDTH (STRINGWIDTH VALUESPACE WINDOW)) (DIFFERENCE WINDOWHEIGHT (CAR (LAST VERTMARKS] (WINDOWPROP (WINDOWPROP WINDOW (QUOTE RIGHTWINDOW)) (QUOTE EXTENT) (CREATEREGION 0 (CAR (LAST VERTMARKS)) (WINDOWPROP (WINDOWPROP WINDOW (QUOTE RIGHTWINDOW)) (QUOTE WIDTH)) (DIFFERENCE WINDOWHEIGHT (CAR (LAST VERTMARKS]) (ONEDINSPECT.PRINTELEMENT [LAMBDA (ELT BOTTOM SUB1DESCENT WINDOW) (* jop: " 1-Oct-85 22:21") (* *) (MOVETO 0 (IPLUS BOTTOM SUB1DESCENT) WINDOW) (PRINTOUT WINDOW ELT]) (ONEDINSPECT.REPAINTFN [LAMBDA (WINDOW WINDOWREGION) (* jop: " 2-Oct-85 00:09") (if (NULL WINDOWREGION) then (SETQ WINDOWREGION (DSPCLIPPINGREGION NIL WINDOW))) (RESETLST [RESETSAVE (PRINTLEVEL (QUOTE (2 . 5] (RESETSAVE PLVLFILEFLG T) (RESETSAVE *PRINT-ARRAY* NIL) (PROG ((TOP (fetch TOP of WINDOWREGION)) (BOTTOM (fetch BOTTOM of WINDOWREGION)) (FETCHFN (WINDOWPROP WINDOW (QUOTE FETCHFN))) (DATUM (WINDOWPROP WINDOW (QUOTE DATUM))) (VERTMARKS (WINDOWPROP WINDOW (QUOTE VERTMARKS))) (PROPS (WINDOWPROP WINDOW (QUOTE PROPS))) STARTPROP LASTPROP STARTVERTMARKS) (for PROP on PROPS as MARK on VERTMARKS until (ILESSP (CAR MARK) TOP) finally (SETQ STARTPROP PROP) (SETQ STARTVERTMARKS MARK)) (for PROP on STARTPROP as MARK in STARTVERTMARKS until (ILESSP MARK BOTTOM) finally (SETQ LASTPROP PROP)) (if STARTPROP then (bind [DESCENT ←(SUB1 (FONTPROP WINDOW (QUOTE DESCENT] for PROP on STARTPROP as VMARK in STARTVERTMARKS repeatuntil (EQ PROP LASTPROP) do (ONEDINSPECT.PRINTELEMENT (APPLY* FETCHFN DATUM (CAR PROP)) VMARK DESCENT WINDOW))) (ONEDINSPECT.INVERTSELECTION WINDOW]) (ONEDINSPECT.REPLACE [LAMBDA (WINDOW PROP NEWVALUE) (* jop: " 2-Oct-85 00:06") (PROG [(DATUM (WINDOWPROP WINDOW (QUOTE DATUM))) (STOREFN (WINDOWPROP WINDOW (QUOTE STOREFN] (APPLY* STOREFN NEWVALUE DATUM PROP) (ONEDINSPECT.REDISPLAY WINDOW PROP]) (ONEDINSPECT.RESHAPEFN [LAMBDA (WINDOW) (* jop: " 6-Oct-85 18:34") (CLEARW WINDOW) (PROG [(SELECTION (WINDOWPROP WINDOW (QUOTE SELECTION] (ONEDINSPECT.MAKEREGIONS WINDOW) (ONEDINSPECT.ADJUSTSELECTION WINDOW) (ONEDINSPECT.REPAINTFN WINDOW]) (ONEDINSPECT.RIGHTW.BUTTONEVENTFN [LAMBDA (WINDOW) (* jop: " 2-Oct-85 12:52") (* *) (TOTOPW WINDOW) (PROG ((MAINWINDOW (MAINWINDOW WINDOW)) (SELECTION (WINDOWPROP WINDOW (QUOTE SELECTION))) PROPS PROPCOMMANDFN VERTMARKS SELECTEDPROP SELECTEDBOTTOM SELECTEDLEFT SELECTEDWIDTH) (SETQ PROPS (WINDOWPROP MAINWINDOW (QUOTE PROPS))) (SETQ VERTMARKS (WINDOWPROP MAINWINDOW (QUOTE VERTMARKS))) (SETQ PROPCOMMANDFN (WINDOWPROP MAINWINDOW (QUOTE PROPCOMMANDFN))) (if PROPCOMMANDFN then (if SELECTION then (SETQ SELECTEDPROP (fetch (ONEDINSPECT.SELECTION PROP) of SELECTION)) (SETQ SELECTEDBOTTOM (fetch (ONEDINSPECT.SELECTION ELTBOTTOM) of SELECTION)) (SETQ SELECTEDLEFT (fetch (ONEDINSPECT.SELECTION ELTLEFT) of SELECTION)) (SETQ SELECTEDWIDTH (fetch (ONEDINSPECT.SELECTION ELTWIDTH) of SELECTION))) (if (MOUSESTATE LEFT) then [RESETLST [RESETSAVE (PRINTLEVEL (QUOTE (2 . 5] (RESETSAVE *PRINT-ARRAY* NIL) (bind (FHEIGHT ←(FONTPROP WINDOW (QUOTE HEIGHT))) (NEWLEFT ←(STRINGWIDTH (WINDOWPROP MAINWINDOW (QUOTE PROPSPACE)) WINDOW)) CURSOR NEWPROP NEWVERTMARK NEWWIDTH repeatwhile (MOUSESTATE LEFT) do (SETQ CURSOR (CURSORPOSITION NIL WINDOW)) (bind (Y ←(fetch YCOORD of CURSOR)) for PROP on PROPS as VMARK in VERTMARKS until (ILESSP VMARK Y) finally (SETQ NEWPROP PROP) (SETQ NEWVERTMARK VMARK)) (if NEWPROP then (SETQ NEWWIDTH (PLSTRINGWIDTH (CAR NEWPROP) WINDOW))) (* Select the new region only if the cursor is inside the element box) (if [AND NEWPROP (OR (ILESSP (fetch XCOORD of CURSOR) NEWLEFT) (IGREATERP (fetch XCOORD of CURSOR) (IPLUS NEWLEFT NEWWIDTH] then (SETQ NEWPROP NIL)) (if (NEQ NEWPROP SELECTEDPROP) then (* We need to consider highlighting a new region) (if SELECTEDPROP then (* Lowlight the old region) ( TWODINSPECT.INVERTREGION SELECTEDLEFT SELECTEDBOTTOM SELECTEDWIDTH FHEIGHT WINDOW) (SETQ SELECTEDPROP NIL)) (if NEWPROP then (* cursor inside element box, highlight that box) ( TWODINSPECT.INVERTREGION NEWLEFT NEWVERTMARK NEWWIDTH FHEIGHT WINDOW) (SETQ SELECTEDPROP NEWPROP) (SETQ SELECTEDWIDTH NEWWIDTH) (SETQ SELECTEDLEFT NEWLEFT) (SETQ SELECTEDBOTTOM NEWVERTMARK))) finally (if SELECTEDPROP then (WINDOWPROP WINDOW (QUOTE SELECTION) (create ONEDINSPECT.SELECTION PROP ← SELECTEDPROP ELTWIDTH ← SELECTEDWIDTH ELTLEFT ← SELECTEDLEFT ELTBOTTOM ← SELECTEDBOTTOM)) else (WINDOWPROP WINDOW (QUOTE SELECTION) NIL] else (* MOUSESTATE MIDDLE) (if SELECTION then (APPLY* PROPCOMMANDFN (CAR SELECTEDPROP) (WINDOWPROP MAINWINDOW (QUOTE DATUM)) MAINWINDOW]) (ONEDINSPECT.RIGHTW.REPAINTFN [LAMBDA (WINDOW WINDOWREGION) (* jop: " 1-Oct-85 23:34") (if (NULL WINDOWREGION) then (SETQ WINDOWREGION (DSPCLIPPINGREGION NIL WINDOW))) (PROG ((DISPLAYW (MAINWINDOW WINDOW)) (TOP (fetch TOP of WINDOWREGION)) (BOTTOM (fetch BOTTOM of WINDOWREGION)) VERTMARKS PROPS SPACE STARTPROPS LASTPROP STARTVERTMARKS) (SETQ VERTMARKS (WINDOWPROP DISPLAYW (QUOTE VERTMARKS))) (SETQ PROPS (WINDOWPROP DISPLAYW (QUOTE PROPS))) (SETQ SPACE (STRINGWIDTH (WINDOWPROP DISPLAYW (QUOTE PROPSPACE)) WINDOW)) (for PROP on PROPS as MARK on VERTMARKS until (ILESSP (CAR MARK) TOP) finally (SETQ STARTPROPS PROP) (SETQ STARTVERTMARKS MARK)) (for PROP on STARTPROPS as MARK in STARTVERTMARKS until (ILESSP MARK BOTTOM) finally (SETQ LASTPROP PROP)) [if STARTPROPS then (bind (FDESCENT ←(FONTPROP WINDOW (QUOTE DESCENT))) for PROP on STARTPROPS as VERTMARK in STARTVERTMARKS repeatuntil (EQ PROP LASTPROP) do (MOVETO SPACE (IPLUS VERTMARK FDESCENT) WINDOW) (PRINTOUT WINDOW (CAR PROP] (ONEDINSPECT.INVERTSELECTION WINDOW]) (ONEDINSPECT.RIGHTW.RESHAPEFN [LAMBDA (WINDOW) (* jop: " 6-Oct-85 18:35") (CLEARW WINDOW) (ONEDINSPECT.ADJUSTPROPSELECTION WINDOW) (ONEDINSPECT.RIGHTW.REPAINTFN WINDOW]) (ONEDINSPECT.SCROLLFN [LAMBDA (WINDOW DX DY FLG) (* jop: " 1-Oct-85 22:41") (PROG [(RIGHTWINDOW (WINDOWPROP WINDOW (QUOTE RIGHTWINDOW] (if (OR (NOT (EQP 0 DY)) (FLOATP DY)) then (APPLY* (WINDOWPROP RIGHTWINDOW (QUOTE SCROLLFN)) RIGHTWINDOW 0 DY FLG)) (SCROLLBYREPAINTFN WINDOW DX DY FLG]) (ONEDINSPECT.SELECTITEM [LAMBDA (WINDOW PROP) (* jop: "10-Oct-85 16:46") (* *) (if (WINDOWPROP WINDOW (QUOTE SELECTION)) then (ONEDINSPECT.INVERTSELECTION WINDOW)) (if PROP then (RESETLST [RESETSAVE (PRINTLEVEL (QUOTE (2 . 5] (RESETSAVE *PRINT-ARRAY* NIL) (PROG ((DATUM (WINDOWPROP WINDOW (QUOTE DATUM))) (FETCHFN (WINDOWPROP WINDOW (QUOTE FETCHFN))) (PROPS (WINDOWPROP WINDOW (QUOTE PROPS))) (VERTMARKS (WINDOWPROP WINDOW (QUOTE VERTMARKS))) (HORZMARKS (WINDOWPROP WINDOW (QUOTE HORZMARKS))) SELECTEDPROP SELECTEDELTBOTTOM SELECTEDELTWIDTH) (SETQ SELECTEDPROP (for PRP on PROPS thereis (EQUAL (CAR PRP) PROP))) (SETQ SELECTEDELTBOTTOM (for VMARK in VERTMARKS as PRP on PROPS thereis (EQ PRP SELECTEDPROP))) (SETQ SELECTEDELTWIDTH (PLSTRINGWIDTH (APPLY* FETCHFN DATUM PROP) WINDOW)) (TWODINSPECT.INVERTREGION 0 SELECTEDELTBOTTOM SELECTEDELTWIDTH (FONTPROP WINDOW (QUOTE HEIGHT)) WINDOW) (WINDOWPROP WINDOW (QUOTE SELECTION) (create ONEDINSPECT.SELECTION PROP ← SELECTEDPROP ELTWIDTH ← SELECTEDELTWIDTH ELTLEFT ← 0 ELTBOTTOM ← SELECTEDELTBOTTOM]) (ONEDINSPECT.SELECTPROP [LAMBDA (WINDOW PROP) (* jop: "31-Dec-00 19:49") (* *) (PROG [(RIGHTWINDOW (WINDOWPROP WINDOW (QUOTE RIGHTWINDOW] (if (WINDOWPROP RIGHTWINDOW (QUOTE SELECTION)) then (ONEDINSPECT.INVERTSELECTION RIGHTWINDOW)) (RESETLST [RESETSAVE (PRINTLEVEL (QUOTE (2 . 5] (RESETSAVE *PRINT-ARRAY* NIL) (PROG ((PROPSPACE (WINDOWPROP WINDOW (QUOTE PROPSPACE))) (PROPS (WINDOWPROP WINDOW (QUOTE PROPS))) (VERTMARKS (WINDOWPROP WINDOW (QUOTE VERTMARKS))) SELECTEDPROP SELECTEDELTBOTTOM SELECTEDELTLEFT SELECTEDELTWIDTH) (SETQ SELECTEDPROP (for PRP on PROPS thereis (EQUAL (CAR PRP) PROP))) (SETQ SELECTEDELTBOTTOM (for VMARK in VERTMARKS as PRP on PROPS thereis (EQ PRP SELECTEDPROP))) (SETQ SELECTEDELTWIDTH (PLSTRINGWIDTH (CAR SELECTEDPROP) WINDOW)) (SETQ SELECTEDELTLEFT (STRINGWIDTH PROPSPACE WINDOW)) (TWODINSPECT.INVERTREGION SELECTEDELTLEFT SELECTEDELTBOTTOM SELECTEDELTWIDTH (FONTPROP WINDOW (QUOTE HEIGHT)) RIGHTWINDOW) (WINDOWPROP RIGHTWINDOW (QUOTE SELECTION) (create ONEDINSPECT.SELECTION PROP ← SELECTEDPROP ELTWIDTH ← SELECTEDELTWIDTH ELTLEFT ← SELECTEDELTLEFT ELTBOTTOM ← SELECTEDELTBOTTOM]) (ONEDINSPECT.SETELT [LAMBDA (PROP WINDOW) (* jop: " 2-Oct-85 12:44") (* *) (PROG ((PRTWINDOW (GETPROMPTWINDOW WINDOW (if (ILESSP (fetch WIDTH of (WINDOWREGION WINDOW)) (IPLUS (ITIMES 5 (STRINGWIDTH (QUOTE A) WINDOW)) (STRINGWIDTH "? " WINDOW))) then 3 else 1))) NEWVALUE) [RESETFORM (SET.TTYINEDIT.WINDOW PRTWINDOW) (SETQ NEWVALUE (EVAL (CAR (TTYIN "? " NIL NIL (QUOTE EVALQT) NIL NIL NIL T] (REMOVEPROMPTWINDOW WINDOW) (ONEDINSPECT.REPLACE WINDOW PROP NEWVALUE]) (ONEDINSPECTW.CREATE [LAMBDA (DATUM PROPS FETCHFN STOREFN VALUECOMMANDFN PROPCOMMANDFN TITLE TITLECOMMANDFN WHERE TOPRIGHT) (* jop: "10-Oct-85 21:06") (* * If where is a window, it may be the result of a previous call, so try to reuse all windows) (PROG ([FONT (OR INSPECTORFONT (DEFAULTFONT (QUOTE DISPLAY] [TITLEFONT (OR (DSPFONT NIL WindowTitleDisplayStream) (QUOTE (HELVETICA 8 MRR] DISPLAYWINDOW RIGHTWINDOW TITLEWINDOW GLEFT GBOTTOM GWIDTH GHEIGHT) (if (LITATOM PROPS) then (SETQ PROPS (APPLY* PROPS DATUM))) (* DISPLAYWINDOW is the central and main window of the group) (SETQ DISPLAYWINDOW (if (WINDOWP WHERE) then WHERE else (CREATEW (CREATEREGION 0 0 100 100) NIL 2 T))) (WINDOWPROP DISPLAYWINDOW (QUOTE REPAINTFN) (FUNCTION ONEDINSPECT.REPAINTFN)) (WINDOWPROP DISPLAYWINDOW (QUOTE RESHAPEFN) (FUNCTION ONEDINSPECT.RESHAPEFN)) (WINDOWPROP DISPLAYWINDOW (QUOTE SCROLLFN) (FUNCTION ONEDINSPECT.SCROLLFN)) (WINDOWPROP DISPLAYWINDOW (QUOTE BUTTONEVENTFN) (FUNCTION ONEDINSPECT.BUTTONEVENTFN)) (WINDOWPROP DISPLAYWINDOW (QUOTE CLOSEFN) (FUNCTION ONEDINSPECT.CLOSEFN)) (DSPRIGHTMARGIN MAX.SMALLP DISPLAYWINDOW) (DSPFONT FONT DISPLAYWINDOW) (WINDOWPROP DISPLAYWINDOW (QUOTE DATUM) DATUM) (WINDOWPROP DISPLAYWINDOW (QUOTE FETCHFN) FETCHFN) (WINDOWPROP DISPLAYWINDOW (QUOTE STOREFN) STOREFN) (WINDOWPROP DISPLAYWINDOW (QUOTE VALUECOMMANDFN) (OR VALUECOMMANDFN (FUNCTION ONEDINSPECT.DEFAULT.VALUECOMMANDFN))) (WINDOWPROP DISPLAYWINDOW (QUOTE PROPCOMMANDFN) PROPCOMMANDFN) (WINDOWPROP DISPLAYWINDOW (QUOTE TITLECOMMANDFN) (OR TITLECOMMANDFN (FUNCTION ONEDINSPECT.DEFAULT.TITLECOMMANDFN))) (WINDOWPROP DISPLAYWINDOW (QUOTE PROPS) PROPS) (WINDOWPROP DISPLAYWINDOW (QUOTE PROPWIDTH) (ONEDINSPECT.PROPWIDTH PROPS FONT)) (WINDOWPROP DISPLAYWINDOW (QUOTE PROPSPACE) " ") (WINDOWPROP DISPLAYWINDOW (QUOTE VALUEWIDTH) (ONEDINSPECT.VALUEWIDTH DATUM PROPS FETCHFN FONT)) (WINDOWPROP DISPLAYWINDOW (QUOTE VALUESPACE) " ") (* RIGHTWINDOW records the ROWPROPS) (SETQ RIGHTWINDOW (OR (WINDOWPROP DISPLAYWINDOW (QUOTE RIGHTWINDOW)) (CREATEW (CREATEREGION 0 0 100 100) NIL (WINDOWPROP DISPLAYWINDOW (QUOTE BORDER)) T))) (WINDOWPROP RIGHTWINDOW (QUOTE REPAINTFN) (FUNCTION ONEDINSPECT.RIGHTW.REPAINTFN)) (WINDOWPROP RIGHTWINDOW (QUOTE RESHAPEFN) (FUNCTION ONEDINSPECT.RIGHTW.RESHAPEFN)) (WINDOWPROP RIGHTWINDOW (QUOTE BUTTONEVENTFN) (FUNCTION ONEDINSPECT.RIGHTW.BUTTONEVENTFN)) (WINDOWPROP RIGHTWINDOW (QUOTE SCROLLFN) (FUNCTION SCROLLBYREPAINTFN)) (WINDOWPROP RIGHTWINDOW (QUOTE NOSCROLLBARS) T) (DSPFONT FONT RIGHTWINDOW) (WINDOWPROP DISPLAYWINDOW (QUOTE RIGHTWINDOW) RIGHTWINDOW) (* TITLEWINDOW will only hold a title) (SETQ TITLEWINDOW (OR (WINDOWPROP DISPLAYWINDOW (QUOTE TITLEWINDOW)) (CREATEW (CREATEREGION 0 0 100 100) NIL 1 T))) (WINDOWPROP TITLEWINDOW (QUOTE REPAINTFN) (FUNCTION TITLEW.REPAINTFN)) (WINDOWPROP TITLEWINDOW (QUOTE RESHAPEFN) (FUNCTION TITLEW.REPAINTFN)) (WINDOWPROP TITLEWINDOW (QUOTE BUTTONEVENTFN) (FUNCTION TITLEW.BUTTONEVENTFN)) (DSPFONT TITLEFONT TITLEWINDOW) (DSPOPERATION (QUOTE INVERT) TITLEWINDOW) [WINDOWPROP TITLEWINDOW (QUOTE INSPECTTITLE) (OR TITLE (RESETVAR *PRINT-ARRAY* NIL (CONCAT "Inspector of " DATUM] (WINDOWPROP DISPLAYWINDOW (QUOTE TITLEWINDOW) TITLEWINDOW) (* Put up the window group) [if (NOT (POSITIONP TOPRIGHT)) then (if (WINDOWP WHERE) then (LET [(REGION (WINDOWPROP WHERE (QUOTE REGION] (SETQ GLEFT (fetch LEFT of REGION)) (SETQ GBOTTOM (fetch BOTTOM of REGION)) (SETQ GWIDTH (fetch WIDTH of REGION)) (SETQ GHEIGHT (fetch HEIGHT of REGION))) elseif (REGIONP WHERE) then (SETQ GLEFT (fetch LEFT of WHERE)) (SETQ GBOTTOM (fetch BOTTOM of WHERE)) (SETQ GWIDTH (fetch WIDTH of WHERE)) (SETQ GHEIGHT (fetch HEIGHT of WHERE)) elseif (POSITIONP WHERE) then (SETQ GLEFT (fetch XCOORD of WHERE)) (SETQ GBOTTOM (fetch YCOORD of WHERE] (RETURN (ONEDINSPECT.ARRANGEWINDOWS DISPLAYWINDOW RIGHTWINDOW TITLEWINDOW GLEFT GBOTTOM GWIDTH GHEIGHT TOPRIGHT]) (TWODINSPECT.COLUMNWIDTH [LAMBDA (DATUM ROWPROPS COLUMNPROP FETCHFN FONT) (* jop: "29-Sep-85 16:26") (* * Computes the MIN fieldwidth for the COLUMNPROP column of SLICE) (RESETLST [RESETSAVE (PRINTLEVEL (QUOTE (2 . 5] (RESETSAVE *PRINT-ARRAY* NIL) (IMAX (PLSTRINGWIDTH COLUMNPROP FONT) (PLSTRINGWIDTH (APPLY* FETCHFN DATUM (for ROWPROP in ROWPROPS largest (PLSTRINGWIDTH (APPLY* FETCHFN DATUM ROWPROP COLUMNPROP) FONT)) COLUMNPROP) FONT]) (TWODINSPECT.COLUMNWIDTHS [LAMBDA (DATUM ROWPROPS COLUMNPROPS FETCHFN FONT) (* jop: "25-Sep-85 12:35") (* * Computes the MIN fieldwidth for the jth column of SLICE) (for COLUMNPROP in COLUMNPROPS collect (TWODINSPECT.COLUMNWIDTH DATUM ROWPROPS COLUMNPROP FETCHFN FONT]) (TWODINSPECT.CLOSEFN [LAMBDA (WINDOW) (* jop: " 4-Oct-85 17:51") (DETACHALLWINDOWS (WINDOWPROP WINDOW (QUOTE RIGHTWINDOW))) (DETACHALLWINDOWS WINDOW) (WINDOWPROP WINDOW (QUOTE SELECTION) NIL) (WINDOWPROP (WINDOWPROP WINDOW (QUOTE RIGHTWINDOW)) (QUOTE SELECTION) NIL) (WINDOWPROP (WINDOWPROP WINDOW (QUOTE TOPWINDOW)) (QUOTE SELECTION) NIL]) (TWODINSPECT.ARRANGEWINDOWS [LAMBDA (DISPLAYWINDOW TOPWINDOW RIGHTWINDOW CORNERWINDOW TITLEWINDOW TOTALLEFT TOTALBOTTOM TOTALWIDTH TOTALHEIGHT TOPRIGHT) (* jop: " 6-Oct-85 13:29") (* * REGION should be the total available area) (PROG ((ROWPROPS (WINDOWPROP DISPLAYWINDOW (QUOTE ROWPROPS))) (COLUMNPROPS (WINDOWPROP DISPLAYWINDOW (QUOTE COLUMNPROPS))) (ROWPROPWIDTH (WINDOWPROP DISPLAYWINDOW (QUOTE ROWPROPWIDTH))) (ROWPROPSPACE (WINDOWPROP DISPLAYWINDOW (QUOTE ROWPROPSPACE))) (COLUMNWIDTHS (WINDOWPROP DISPLAYWINDOW (QUOTE COLUMNWIDTHS))) (COLUMNPROPSPACE (WINDOWPROP DISPLAYWINDOW (QUOTE COLUMNPROPSPACE))) TOTALRIGHT TOTALTOP DWHEIGHT DWWIDTH TITLEHEIGHT TWHEIGHT RWWIDTH DWLEFT DWBOTTOM) [SETQ TITLEHEIGHT (HEIGHTIFWINDOW (FONTPROP TITLEWINDOW (QUOTE HEIGHT)) NIL (WINDOWPROP TITLEWINDOW (QUOTE BORDER] [SETQ TWHEIGHT (HEIGHTIFWINDOW (FONTPROP TOPWINDOW (QUOTE HEIGHT)) NIL (WINDOWPROP TOPWINDOW (QUOTE BORDER] [SETQ RWWIDTH (WIDTHIFWINDOW (IPLUS (STRINGWIDTH ROWPROPSPACE RIGHTWINDOW) ROWPROPWIDTH) (WINDOWPROP RIGHTWINDOW (QUOTE BORDER] [if (NULL TOTALHEIGHT) then [SETQ DWHEIGHT (IMIN 500 (HEIGHTIFWINDOW (ITIMES (FONTPROP DISPLAYWINDOW (QUOTE HEIGHT)) (LENGTH ROWPROPS)) NIL (WINDOWPROP DISPLAYWINDOW (QUOTE BORDER] (SETQ TOTALHEIGHT (IPLUS TITLEHEIGHT TWHEIGHT DWHEIGHT)) else (SETQ DWHEIGHT (IDIFFERENCE TOTALHEIGHT (IPLUS TWHEIGHT TITLEHEIGHT] (if (NULL TOTALWIDTH) then [SETQ DWWIDTH (IMIN 400 (WIDTHIFWINDOW (TWODINSPECT.TOTALWIDTH COLUMNWIDTHS COLUMNPROPSPACE (DSPFONT DISPLAYWINDOW)) (WINDOWPROP DISPLAYWINDOW (QUOTE BORDER] (SETQ TOTALWIDTH (IPLUS RWWIDTH DWWIDTH)) else (SETQ DWWIDTH (IDIFFERENCE TOTALWIDTH RWWIDTH))) [if (POSITIONP TOPRIGHT) then (SETQ TOTALRIGHT (fetch XCOORD of TOPRIGHT)) (SETQ TOTALTOP (fetch YCOORD of TOPRIGHT)) elseif (AND TOTALLEFT TOTALBOTTOM) then (SETQ TOTALRIGHT (IPLUS TOTALLEFT (SUB1 TOTALWIDTH))) (SETQ TOTALTOP (IPLUS TOTALBOTTOM (SUB1 TOTALHEIGHT))) else (LET ((REGION (GETBOXREGION TOTALWIDTH TOTALHEIGHT NIL NIL NIL "Position Inspector window"))) (SETQ TOTALTOP (fetch TOP of REGION)) (SETQ TOTALRIGHT (fetch RIGHT of REGION] [SETQ DWLEFT (DIFFERENCE TOTALRIGHT (SUB1 (PLUS DWWIDTH RWWIDTH] (if (ILESSP DWLEFT 0) then (SETQ DWLEFT 0) (SETQ DWWIDTH (DIFFERENCE (ADD1 TOTALRIGHT) RWWIDTH))) [SETQ DWBOTTOM (DIFFERENCE TOTALTOP (SUB1 (PLUS DWHEIGHT TWHEIGHT TITLEHEIGHT] [if (LESSP DWBOTTOM 0) then (SETQ DWBOTTOM 0) (SETQ DWHEIGHT (DIFFERENCE (ADD1 TOTALTOP) (PLUS TWHEIGHT TITLEHEIGHT] (* * put up the window group) (WINDOWPROP DISPLAYWINDOW (QUOTE MINSIZE) (CONS 0 0)) (SHAPEW DISPLAYWINDOW (CREATEREGION DWLEFT DWBOTTOM DWWIDTH DWHEIGHT)) (* Need to set the Minsize BEFORE reshaping else we catch the default minsize) (WINDOWPROP TOPWINDOW (QUOTE MINSIZE) (CONS 0 TWHEIGHT)) (WINDOWPROP TOPWINDOW (QUOTE MAXSIZE) (CONS MAX.SMALLP TWHEIGHT)) (SHAPEW TOPWINDOW (CREATEREGION DWLEFT [ADD1 (fetch TOP of (WINDOWPROP DISPLAYWINDOW (QUOTE REGION] DWWIDTH TWHEIGHT)) (ATTACHWINDOW TOPWINDOW DISPLAYWINDOW (QUOTE TOP)) (WINDOWPROP RIGHTWINDOW (QUOTE MINSIZE) (CONS RWWIDTH 0)) (WINDOWPROP RIGHTWINDOW (QUOTE MAXSIZE) (CONS RWWIDTH MAX.SMALLP)) (SHAPEW RIGHTWINDOW (CREATEREGION [ADD1 (fetch RIGHT of (WINDOWPROP DISPLAYWINDOW (QUOTE REGION] DWBOTTOM RWWIDTH DWHEIGHT)) (WINDOWPROP CORNERWINDOW (QUOTE MINSIZE) (CONS RWWIDTH TWHEIGHT)) (WINDOWPROP CORNERWINDOW (QUOTE MAXSIZE) (CONS RWWIDTH TWHEIGHT)) (SHAPEW CORNERWINDOW (CREATEREGION [ADD1 (fetch RIGHT of (WINDOWPROP DISPLAYWINDOW (QUOTE REGION] [ADD1 (fetch TOP of (WINDOWPROP DISPLAYWINDOW (QUOTE REGION] RWWIDTH TWHEIGHT)) (ATTACHWINDOW CORNERWINDOW RIGHTWINDOW (QUOTE TOP)) (ATTACHWINDOW RIGHTWINDOW DISPLAYWINDOW (QUOTE RIGHT)) (WINDOWPROP TITLEWINDOW (QUOTE MINSIZE) (CONS 0 TITLEHEIGHT)) (WINDOWPROP TITLEWINDOW (QUOTE MAXSIZE) (CONS MAX.SMALLP TITLEHEIGHT)) (SHAPEW TITLEWINDOW (CREATEREGION DWLEFT [ADD1 (fetch TOP (WINDOWPROP TOPWINDOW (QUOTE REGION] TOTALWIDTH TITLEHEIGHT)) (ATTACHWINDOW TITLEWINDOW DISPLAYWINDOW (QUOTE TOP)) (RETURN DISPLAYWINDOW]) (TWODINSPECTW.CREATE [LAMBDA (DATUM ROWPROPS COLUMNPROPS FETCHFN STOREFN VALUECOMMANDFN ROWPROPCOMMANDFN COLUMNPROPCOMMANDFN TITLE TITLECOMMANDFN WHERE TOPRIGHT) (* jop: "10-Oct-85 21:05") (* * If where is a window, it may be the result of a previous call, so try to reuse all windows) (PROG ([FONT (OR INSPECTORFONT (DEFAULTFONT (QUOTE DISPLAY] [TITLEFONT (OR (DSPFONT NIL WindowTitleDisplayStream) (QUOTE (HELVETICA 8 MRR] DISPLAYWINDOW TOPWINDOW RIGHTWINDOW CORNERWINDOW TITLEWINDOW GLEFT GBOTTOM GWIDTH GHEIGHT) (if (LITATOM ROWPROPS) then (SETQ ROWPROPS (APPLY* ROWPROPS DATUM))) (if (LITATOM COLUMNPROPS) then (SETQ COLUMNPROPS (APPLY* COLUMNPROPS DATUM))) (* DISPLAYWINDOW is the central and main window of the group) (SETQ DISPLAYWINDOW (if (WINDOWP WHERE) then WHERE else (CREATEW (CREATEREGION 0 0 100 100) NIL 2 T))) (WINDOWPROP DISPLAYWINDOW (QUOTE REPAINTFN) (FUNCTION TWODINSPECT.REPAINTFN)) (WINDOWPROP DISPLAYWINDOW (QUOTE RESHAPEFN) (FUNCTION TWODINSPECT.RESHAPEFN)) (WINDOWPROP DISPLAYWINDOW (QUOTE SCROLLFN) (FUNCTION TWODINSPECT.SCROLLFN)) (WINDOWPROP DISPLAYWINDOW (QUOTE BUTTONEVENTFN) (FUNCTION TWODINSPECT.BUTTONEVENTFN)) (WINDOWPROP DISPLAYWINDOW (QUOTE CLOSEFN) (FUNCTION TWODINSPECT.CLOSEFN)) (DSPRIGHTMARGIN MAX.SMALLP DISPLAYWINDOW) (DSPFONT FONT DISPLAYWINDOW) (WINDOWPROP DISPLAYWINDOW (QUOTE DATUM) DATUM) (WINDOWPROP DISPLAYWINDOW (QUOTE FETCHFN) FETCHFN) (WINDOWPROP DISPLAYWINDOW (QUOTE STOREFN) STOREFN) (WINDOWPROP DISPLAYWINDOW (QUOTE VALUECOMMANDFN) (OR VALUECOMMANDFN (FUNCTION TWODINSPECT.DEFAULT.VALUECOMMANDFN))) (WINDOWPROP DISPLAYWINDOW (QUOTE ROWPROPCOMMANDFN) ROWPROPCOMMANDFN) (WINDOWPROP DISPLAYWINDOW (QUOTE COLUMNPROPCOMMANDFN) COLUMNPROPCOMMANDFN) (WINDOWPROP DISPLAYWINDOW (QUOTE TITLECOMMANDFN) (OR TITLECOMMANDFN (FUNCTION TWODINSPECT.DEFAULT.TITLECOMMANDFN))) (WINDOWPROP DISPLAYWINDOW (QUOTE ROWPROPS) ROWPROPS) (WINDOWPROP DISPLAYWINDOW (QUOTE ROWPROPWIDTH) (TWODINSPECT.ROWPROPWIDTH ROWPROPS FONT)) (WINDOWPROP DISPLAYWINDOW (QUOTE ROWPROPSPACE) " ") (WINDOWPROP DISPLAYWINDOW (QUOTE COLUMNPROPS) COLUMNPROPS) (WINDOWPROP DISPLAYWINDOW (QUOTE COLUMNWIDTHS) (TWODINSPECT.COLUMNWIDTHS DATUM ROWPROPS COLUMNPROPS FETCHFN FONT)) (WINDOWPROP DISPLAYWINDOW (QUOTE COLUMNPROPSPACE) " ") (* TOPWINDOW simply records the COLUMNPROPS) (SETQ TOPWINDOW (OR (WINDOWPROP DISPLAYWINDOW (QUOTE TOPWINDOW)) (CREATEW (CREATEREGION 0 0 100 100) NIL (WINDOWPROP DISPLAYWINDOW (QUOTE BORDER)) T))) (WINDOWPROP TOPWINDOW (QUOTE REPAINTFN) (FUNCTION TWODINSPECT.TOPW.REPAINTFN)) (WINDOWPROP TOPWINDOW (QUOTE RESHAPEFN) (FUNCTION TWODINSPECT.TOPW.RESHAPEFN)) (WINDOWPROP TOPWINDOW (QUOTE BUTTONEVENTFN) (FUNCTION TWODINSPECT.TOPW.BUTTONEVENTFN)) (WINDOWPROP TOPWINDOW (QUOTE SCROLLFN) (FUNCTION SCROLLBYREPAINTFN)) (DSPRIGHTMARGIN MAX.SMALLP TOPWINDOW) (* TOPWINDOW will scroll under program control) (WINDOWPROP TOPWINDOW (QUOTE NOSCROLLBARS) T) (DSPFONT FONT TOPWINDOW) (WINDOWPROP DISPLAYWINDOW (QUOTE TOPWINDOW) TOPWINDOW) (* RIGHTWINDOW records the ROWPROPS) (SETQ RIGHTWINDOW (OR (WINDOWPROP DISPLAYWINDOW (QUOTE RIGHTWINDOW)) (CREATEW (CREATEREGION 0 0 100 100) NIL (WINDOWPROP DISPLAYWINDOW (QUOTE BORDER)) T))) (WINDOWPROP RIGHTWINDOW (QUOTE REPAINTFN) (FUNCTION TWODINSPECT.RIGHTW.REPAINTFN)) (WINDOWPROP RIGHTWINDOW (QUOTE RESHAPEFN) (FUNCTION TWODINSPECT.RIGHTW.RESHAPEFN)) (WINDOWPROP RIGHTWINDOW (QUOTE BUTTONEVENTFN) (FUNCTION TWODINSPECT.RIGHTW.BUTTONEVENTFN)) (WINDOWPROP RIGHTWINDOW (QUOTE SCROLLFN) (FUNCTION SCROLLBYREPAINTFN)) (WINDOWPROP RIGHTWINDOW (QUOTE NOSCROLLBARS) T) (DSPFONT FONT RIGHTWINDOW) (WINDOWPROP DISPLAYWINDOW (QUOTE RIGHTWINDOW) RIGHTWINDOW) (* CORNERWINDOW is just a place holder) (SETQ CORNERWINDOW (OR (WINDOWPROP DISPLAYWINDOW (QUOTE CORNERWINDOW)) (CREATEW (CREATEREGION 0 0 100 100) NIL (WINDOWPROP DISPLAYWINDOW (QUOTE BORDER)) T))) (DSPFONT FONT CORNERWINDOW) (WINDOWPROP DISPLAYWINDOW (QUOTE CORNERWINDOW) CORNERWINDOW) (* TITLEWINDOW will only hold a title) (SETQ TITLEWINDOW (OR (WINDOWPROP DISPLAYWINDOW (QUOTE TITLEWINDOW)) (CREATEW (CREATEREGION 0 0 100 100) NIL 1 T))) (WINDOWPROP TITLEWINDOW (QUOTE REPAINTFN) (FUNCTION TITLEW.REPAINTFN)) (WINDOWPROP TITLEWINDOW (QUOTE RESHAPEFN) (FUNCTION TITLEW.REPAINTFN)) (WINDOWPROP TITLEWINDOW (QUOTE BUTTONEVENTFN) (FUNCTION TITLEW.BUTTONEVENTFN)) (DSPFONT TITLEFONT TITLEWINDOW) (DSPOPERATION (QUOTE INVERT) TITLEWINDOW) [WINDOWPROP TITLEWINDOW (QUOTE INSPECTTITLE) (OR TITLE (RESETLST [RESETSAVE (PRINTLEVEL (QUOTE (2 . 5] (RESETSAVE *PRINT-ARRAY* NIL) (CONCAT "Inspector of " DATUM] (WINDOWPROP DISPLAYWINDOW (QUOTE TITLEWINDOW) TITLEWINDOW) (* Put up the window group) [if (NOT (POSITIONP TOPRIGHT)) then (if (WINDOWP WHERE) then (LET ((REGION (WINDOWREGION WHERE))) (SETQ GLEFT (fetch LEFT of REGION)) (SETQ GBOTTOM (fetch BOTTOM of REGION)) (SETQ GWIDTH (fetch WIDTH of REGION)) (SETQ GHEIGHT (fetch HEIGHT of REGION))) elseif (REGIONP WHERE) then (SETQ GLEFT (fetch LEFT of WHERE)) (SETQ GBOTTOM (fetch BOTTOM of WHERE)) (SETQ GWIDTH (fetch WIDTH of WHERE)) (SETQ GHEIGHT (fetch HEIGHT of WHERE)) elseif (POSITIONP WHERE) then (SETQ GLEFT (fetch XCOORD of WHERE)) (SETQ GBOTTOM (fetch YCOORD of WHERE] (RETURN (TWODINSPECT.ARRANGEWINDOWS DISPLAYWINDOW TOPWINDOW RIGHTWINDOW CORNERWINDOW TITLEWINDOW GLEFT GBOTTOM GWIDTH GHEIGHT TOPRIGHT] ) (TITLEW.BUTTONEVENTFN [LAMBDA (TITLEWINDOW) (* jop: " 1-Oct-85 20:48") (* *) (PROG ((MAINWINDOW (MAINWINDOW TITLEWINDOW)) TITLECOMMANDFN) (SETQ TITLECOMMANDFN (WINDOWPROP MAINWINDOW (QUOTE TITLECOMMANDFN))) (if TITLECOMMANDFN then (APPLY* TITLECOMMANDFN MAINWINDOW]) (TWODINSPECT.DEFAULT.TITLECOMMANDFN [LAMBDA (WINDOW) (* jop: " 1-Oct-85 21:13") (* *) (if (MOUSESTATE MIDDLE) then (RESETLST [RESETSAVE (PRINTLEVEL (QUOTE (2 . 5] (RESETSAVE PLVLFILEFLG T) (RESETSAVE *PRINT-ARRAY* NIL) (PROG [[TITLEMENU (CONSTANT (create MENU ITEMS ←(QUOTE ((Refetch (QUOTE REFETCH) "Refetch the datum") ("IT ← Datum" (QUOTE IT) "Bind IT to the inspected datum"] (DATUM (WINDOWPROP WINDOW (QUOTE DATUM] (SELECTQ (MENU TITLEMENU) (REFETCH (TWODINSPECT.REDISPLAY WINDOW)) (IT (SETQ IT DATUM) (PROMPTPRINT "IT bound to " DATUM)) NIL]) (TITLEW.REPAINTFN [LAMBDA (WINDOW) (* jop: "29-Sep-85 13:16") (* *) (BITBLT NIL NIL NIL WINDOW NIL NIL NIL NIL (QUOTE TEXTURE) (QUOTE REPLACE) BLACKSHADE) (MOVETOUPPERLEFT WINDOW) (PRINTOUT WINDOW (WINDOWPROP WINDOW (QUOTE INSPECTTITLE]) (TWODINSPECT.INVERTREGION [LAMBDA (LEFT BOTTOM WIDTH HEIGHT WINDOW) (* jop: "27-Sep-85 17:09") (BITBLT NIL NIL NIL WINDOW LEFT BOTTOM WIDTH HEIGHT (QUOTE TEXTURE) (QUOTE INVERT) BLACKSHADE]) (TWODINSPECT.BUTTONEVENTFN [LAMBDA (WINDOW) (* jop: "25-Nov-85 12:42") (* *) (TOTOPW WINDOW) (PROG ((DATUM (WINDOWPROP WINDOW (QUOTE DATUM))) (FETCHFN (WINDOWPROP WINDOW (QUOTE FETCHFN))) (ROWPROPS (WINDOWPROP WINDOW (QUOTE ROWPROPS))) (COLUMNPROPS (WINDOWPROP WINDOW (QUOTE COLUMNPROPS))) (VERTMARKS (WINDOWPROP WINDOW (QUOTE VERTMARKS))) (HORZMARKS (WINDOWPROP WINDOW (QUOTE HORZMARKS))) (SELECTION (WINDOWPROP WINDOW (QUOTE SELECTION))) SELECTEDROWPROP SELECTEDCOLUMNPROP SELECTEDELTBOTTOM SELECTEDELTLEFT SELECTEDELTWIDTH) (if SELECTION then (SETQ SELECTEDROWPROP (fetch (TWODINSPECT.SELECTION ROWPROP) of SELECTION)) (SETQ SELECTEDCOLUMNPROP (fetch (TWODINSPECT.SELECTION COLUMNPROP) of SELECTION)) (SETQ SELECTEDELTBOTTOM (fetch (TWODINSPECT.SELECTION ELTBOTTOM) of SELECTION)) (SETQ SELECTEDELTLEFT (fetch (TWODINSPECT.SELECTION ELTLEFT) of SELECTION)) (SETQ SELECTEDELTWIDTH (fetch (TWODINSPECT.SELECTION ELTWIDTH) of SELECTION))) (if (MOUSESTATE LEFT) then [RESETLST [RESETSAVE (PRINTLEVEL (QUOTE (2 . 5] (RESETSAVE *PRINT-ARRAY* NIL) (bind (FHEIGHT ←(FONTPROP WINDOW (QUOTE HEIGHT))) CURSOR NEWROWPROP NEWVERTMARK NEWCOLUMNPROP NEWHORZMARK NEWELTWIDTH NEWELTLEFT repeatwhile (MOUSESTATE LEFT) do (SETQ CURSOR (CURSORPOSITION NIL WINDOW)) (bind (Y ←(fetch YCOORD of CURSOR)) for ROWPROP on ROWPROPS as VERTMARK in VERTMARKS until (ILESSP VERTMARK Y) finally (SETQ NEWROWPROP ROWPROP) (SETQ NEWVERTMARK VERTMARK)) (bind (X ←(fetch XCOORD of CURSOR)) for COLUMNPROP on COLUMNPROPS as HORZMARK in HORZMARKS until (IGREATERP HORZMARK X) finally (SETQ NEWCOLUMNPROP COLUMNPROP) (SETQ NEWHORZMARK HORZMARK)) (if (AND NEWROWPROP NEWCOLUMNPROP) then (SETQ NEWELTWIDTH (PLSTRINGWIDTH (APPLY* FETCHFN DATUM (CAR NEWROWPROP) (CAR NEWCOLUMNPROP)) WINDOW)) (SETQ NEWELTLEFT (ADD1 (IDIFFERENCE NEWHORZMARK NEWELTWIDTH))) (* Select the new region only if the cursor is inside the element box) (if (ILESSP (fetch XCOORD of CURSOR) NEWELTLEFT) then (SETQ NEWROWPROP NIL) (SETQ NEWCOLUMNPROP NIL))) (if (OR (NEQ NEWROWPROP SELECTEDROWPROP) (NEQ NEWCOLUMNPROP SELECTEDCOLUMNPROP)) then (* We need to consider highlighting a new region) (if (AND SELECTEDROWPROP SELECTEDCOLUMNPROP) then (* Lowlight the old region) (TWODINSPECT.INVERTREGION SELECTEDELTLEFT SELECTEDELTBOTTOM SELECTEDELTWIDTH FHEIGHT WINDOW) (SETQ SELECTEDROWPROP NIL) (SETQ SELECTEDCOLUMNPROP NIL)) (if (AND NEWROWPROP NEWCOLUMNPROP) then (* cursor inside element box, highlight that box) (TWODINSPECT.INVERTREGION NEWELTLEFT NEWVERTMARK NEWELTWIDTH FHEIGHT WINDOW) (SETQ SELECTEDROWPROP NEWROWPROP) (SETQ SELECTEDCOLUMNPROP NEWCOLUMNPROP) (SETQ SELECTEDELTWIDTH NEWELTWIDTH) (SETQ SELECTEDELTLEFT NEWELTLEFT) (SETQ SELECTEDELTBOTTOM NEWVERTMARK))) finally (if (AND SELECTEDROWPROP SELECTEDCOLUMNPROP) then (WINDOWPROP WINDOW (QUOTE SELECTION) (create TWODINSPECT.SELECTION ROWPROP ← SELECTEDROWPROP COLUMNPROP ← SELECTEDCOLUMNPROP ELTWIDTH ← SELECTEDELTWIDTH ELTLEFT ← SELECTEDELTLEFT ELTBOTTOM ← SELECTEDELTBOTTOM)) else (WINDOWPROP WINDOW (QUOTE SELECTION) NIL] else (* MOUSESTATE MIDDLE) (if SELECTION then (APPLY* (WINDOWPROP WINDOW (QUOTE VALUECOMMANDFN)) (APPLY* FETCHFN DATUM (CAR SELECTEDROWPROP) (CAR SELECTEDCOLUMNPROP)) (CAR SELECTEDROWPROP) (CAR SELECTEDCOLUMNPROP) DATUM WINDOW]) (TWODINSPECT.DEFAULT.VALUECOMMANDFN [LAMBDA (VALUE ROWPROP COLUMNPROP DATUM WINDOW) (* jop: "10-Oct-85 20:47") (* *) (PROG [[SETMENU (CONSTANT (create MENU ITEMS ←(QUOTE (("IT ← Selection" (QUOTE IT) "Bind IT to the value of the selected entry") (Set (QUOTE SET) "Set the selected entry"] (INSPECTMENU (CONSTANT (create MENU ITEMS ←(QUOTE ((Inspect (QUOTE INSPECT) "Inspect the value of the selected entry") ("IT ← Selection" (QUOTE IT) "Bind IT to the value of the selected entry") (Set (QUOTE SET) "Set the selected entry"] (SELECTQ (if (OR (NULL VALUE) (NUMBERP VALUE)) then (MENU SETMENU) else (MENU INSPECTMENU)) (INSPECT (INSPECT VALUE)) (IT (SETQ IT VALUE) (RESETLST [RESETSAVE (PRINTLEVEL (QUOTE (2 . 5] (RESETSAVE PLVLFILEFLG T) (RESETSAVE *PRINT-ARRAY* NIL) (PROMPTPRINT "IT bound to " IT))) (SET (TWODINSPECT.SETELT ROWPROP COLUMNPROP WINDOW)) NIL]) (TWODINSPECT.DOWINDOWCOMFN [LAMBDA (TWODWINDOW) (* jop: "25-Jul-85 16:48") (* * Pass on the usual comms, except for SHAPEW) (PROG (COM) (SETQ COM (MENU WindowMenu)) (SELECTQ COM (NIL NIL) [SHAPEW (SHAPEW TWODWINDOW (GETREGION NIL NIL NIL (FUNCTION ICMLARRAY.GETREGIONFN) (CONS TWODWINDOW (QUOTE CLOSED] ((MOVEW CLOSEW SHRINKW BURYW) (APPLY* COM (MAINWINDOW TWODWINDOW))) (APPLY* COM TWODWINDOW]) (TWODINSPECT.MAKEREGIONS [LAMBDA (WINDOW) (* jop: "29-Sep-85 17:55") (* * Sets up windowprops and activeregions) (PROG ((ROWPROPS (WINDOWPROP WINDOW (QUOTE ROWPROPS))) (COLUMNPROPS (WINDOWPROP WINDOW (QUOTE COLUMNPROPS))) (COLUMNWIDTHS (WINDOWPROP WINDOW (QUOTE COLUMNWIDTHS))) (SPACE (STRINGWIDTH (WINDOWPROP WINDOW (QUOTE COLUMNPROPSPACE)) WINDOW)) (WINDOWHEIGHT (WINDOWPROP WINDOW (QUOTE HEIGHT))) (LF (DSPLINEFEED NIL WINDOW)) VERTMARKS HORZMARKS) (if (NULL COLUMNWIDTHS) then (SETQ COLUMNWIDTHS (TWODINSPECT.COLUMNWIDTHS (WINDOWPROP WINDOW (QUOTE DATUM)) ROWPROPS COLUMNPROPS (WINDOWPROP WINDOW (QUOTE FETCHFN)) WINDOW)) (WINDOWPROP WINDOW (QUOTE COLUMNWIDTHS) COLUMNWIDTHS)) (* VERTMARKS and HORZMARKS mark endpoints) (SETQ VERTMARKS (for I from 1 to (LENGTH ROWPROPS) as MARK from (IPLUS WINDOWHEIGHT LF) by LF collect MARK)) [SETQ HORZMARKS (bind (MARK ← -1) for I from 1 to (LENGTH COLUMNPROPS) as COLUMNWIDTH in COLUMNWIDTHS collect (SETQ MARK (IPLUS MARK SPACE COLUMNWIDTH] (WINDOWPROP WINDOW (QUOTE VERTMARKS) VERTMARKS) (WINDOWPROP WINDOW (QUOTE HORZMARKS) HORZMARKS) [WINDOWPROP WINDOW (QUOTE EXTENT) (CREATEREGION 0 (CAR (LAST VERTMARKS)) (CAR (LAST HORZMARKS)) (DIFFERENCE WINDOWHEIGHT (CAR (LAST VERTMARKS] [WINDOWPROP (WINDOWPROP WINDOW (QUOTE TOPWINDOW)) (QUOTE EXTENT) (CREATEREGION 0 0 (CAR (LAST HORZMARKS)) (WINDOWPROP (WINDOWPROP WINDOW (QUOTE TOPWINDOW)) (QUOTE HEIGHT] (WINDOWPROP (WINDOWPROP WINDOW (QUOTE RIGHTWINDOW)) (QUOTE EXTENT) (CREATEREGION 0 (CAR (LAST VERTMARKS)) (WINDOWPROP (WINDOWPROP WINDOW (QUOTE RIGHTWINDOW)) (QUOTE WIDTH)) (DIFFERENCE WINDOWHEIGHT (CAR (LAST VERTMARKS]) (TWODINSPECT.PRINTELEMENT [LAMBDA (ELT RIGHT BOTTOM FDESCENT WINDOW) (* jop: " 1-Oct-85 22:35") (* *) (MOVETO (ADD1 (DIFFERENCE RIGHT (PLSTRINGWIDTH ELT WINDOW))) (IPLUS BOTTOM FDESCENT) WINDOW) (PRINTOUT WINDOW ELT]) (TWODINSPECT.REDISPLAY [LAMBDA (WINDOW ELTROWPROPS ELTCOLUMNPROPS) (* jop: "31-Dec-00 19:44") (* * ELTROWPROPS and ELTCOLUMNPROPS may be single entries, lists, or NIL. If NIL than the whole inspector is refetched and redisplayed) (if (AND ELTROWPROPS (NLISTP ELTROWPROPS)) then (SETQ ELTROWPROPS (LIST ELTROWPROPS))) (if (AND ELTCOLUMNPROPS (NLISTP ELTCOLUMNPROPS)) then (SETQ ELTCOLUMNPROPS (LIST ELTCOLUMNPROPS))) (RESETLST [RESETSAVE (PRINTLEVEL (QUOTE (2 . 5] (RESETSAVE PLVLFILEFLG T) (RESETSAVE *PRINT-ARRAY* NIL) (PROG ((FETCHFN (WINDOWPROP WINDOW (QUOTE FETCHFN))) (DATUM (WINDOWPROP WINDOW (QUOTE DATUM))) (VERTMARKS (WINDOWPROP WINDOW (QUOTE VERTMARKS))) (HORZMARKS (WINDOWPROP WINDOW (QUOTE HORZMARKS))) (ROWPROPS (WINDOWPROP WINDOW (QUOTE ROWPROPS))) (COLUMNPROPS (WINDOWPROP WINDOW (QUOTE COLUMNPROPS))) (COLUMNWIDTHS (WINDOWPROP WINDOW (QUOTE COLUMNWIDTHS))) (SELECTION (WINDOWPROP WINDOW (QUOTE SELECTION))) ELTCOLUMNWIDTHS ELTS ELTRIGHTS ELTBOTTOMS) [SETQ ELTS (for RPROP in ELTROWPROPS join (for CPROP in ELTCOLUMNPROPS collect (APPLY* FETCHFN DATUM RPROP CPROP] [SETQ ELTCOLUMNWIDTHS (for RPROP in ELTROWPROPS join (for CPROP in ELTCOLUMNPROPS collect (for COLWIDTH in COLUMNWIDTHS as COLPROP in COLUMNPROPS thereis (EQUAL COLPROP CPROP] [SETQ ELTRIGHTS (for RPROP in ELTROWPROPS join (for CPROP in ELTCOLUMNPROPS collect (for HMARK in HORZMARKS as COLPROP in COLUMNPROPS thereis (EQUAL COLPROP CPROP] [SETQ ELTBOTTOMS (for RPROP in ELTROWPROPS join (for CPROP in ELTCOLUMNPROPS collect (for VMARK in VERTMARKS as ROWPROP in ROWPROPS thereis (EQUAL ROWPROP RPROP] (if (AND ELTS (for ELT in ELTS as COLUMNWIDTH in ELTCOLUMNWIDTHS never (IGREATERP (PLSTRINGWIDTH ELT WINDOW) COLUMNWIDTH))) then (TWODINSPECT.INVERTSELECTION WINDOW) (bind (FHEIGHT ←(FONTPROP WINDOW (QUOTE HEIGHT))) (FDESCENT ←(FONTPROP WINDOW (QUOTE DESCENT))) for ELT in ELTS as RIGHT in ELTRIGHTS as BOTTOM in ELTBOTTOMS as COLUMNWIDTH in ELTCOLUMNWIDTHS do (BITBLT NIL NIL NIL WINDOW (IDIFFERENCE (ADD1 RIGHT) COLUMNWIDTH) BOTTOM COLUMNWIDTH FHEIGHT (QUOTE TEXTURE) (QUOTE REPLACE) WHITESHADE) (TWODINSPECT.PRINTELEMENT ELT RIGHT BOTTOM FDESCENT WINDOW)) (TWODINSPECT.ADJUSTSELECTION WINDOW) (TWODINSPECT.INVERTSELECTION WINDOW) else (* Recompute the whole picture) (WINDOWPROP WINDOW (QUOTE COLUMNWIDTHS) NIL) (TWODINSPECT.MAKEREGIONS WINDOW) (TWODINSPECT.ADJUSTSELECTION WINDOW) (DSPRESET WINDOW) (TWODINSPECT.REPAINTFN WINDOW) (DSPRESET (WINDOWPROP WINDOW (QUOTE TOPWINDOW))) (TWODINSPECT.TOPW.REPAINTFN (WINDOWPROP WINDOW (QUOTE TOPWINDOW))) (DSPRESET (WINDOWPROP WINDOW (QUOTE RIGHTWINDOW))) (TWODINSPECT.RIGHTW.REPAINTFN (WINDOWPROP WINDOW (QUOTE RIGHTWINDOW]) (TWODINSPECT.INVERTSELECTION [LAMBDA (WINDOW) (* jop: "29-Sep-85 17:37") (* * Inverts SELECTION if non-NIL) (PROG [(SELECTION (WINDOWPROP WINDOW (QUOTE SELECTION] (if SELECTION then (TWODINSPECT.INVERTREGION (fetch (TWODINSPECT.SELECTION ELTLEFT) of SELECTION) (fetch (TWODINSPECT.SELECTION ELTBOTTOM) of SELECTION) (fetch (TWODINSPECT.SELECTION ELTWIDTH) of SELECTION) (FONTPROP WINDOW (QUOTE HEIGHT)) WINDOW]) (TWODINSPECT.ADJUSTCOLUMNSELECTION [LAMBDA (WINDOW) (* jop: "30-Sep-85 22:00") (PROG ((SELECTION (WINDOWPROP WINDOW (QUOTE SELECTION))) (MAINWINDOW (MAINWINDOW WINDOW))) (if SELECTION then (RESETLST [RESETSAVE (PRINTLEVEL (QUOTE (2 . 5] (RESETSAVE *PRINT-ARRAY* NIL) (PROG ((COLUMNPROPS (WINDOWPROP MAINWINDOW (QUOTE COLUMNPROPS))) (HORZMARKS (WINDOWPROP MAINWINDOW (QUOTE HORZMARKS))) (SELCOLPROP (fetch (TWODINSPECT.SELECTION COLUMNPROP) of SELECTION)) SELBOTTOM SELWIDTH SELLEFT) (SETQ SELBOTTOM 0) (SETQ SELWIDTH (PLSTRINGWIDTH (CAR SELCOLPROP) WINDOW)) (SETQ SELLEFT (IDIFFERENCE (ADD1 (for HMARK in HORZMARKS as COLPROP on COLUMNPROPS thereis (EQ COLPROP SELCOLPROP))) SELWIDTH)) (WINDOWPROP WINDOW (QUOTE SELECTION) (create TWODINSPECT.SELECTION COLUMNPROP ← SELCOLPROP ELTBOTTOM ← SELBOTTOM ELTWIDTH ← SELWIDTH ELTLEFT ← SELLEFT]) (TWODINSPECT.ADJUSTROWSELECTION [LAMBDA (WINDOW) (* jop: "30-Sep-85 22:00") (PROG ((SELECTION (WINDOWPROP WINDOW (QUOTE SELECTION))) (MAINWINDOW (MAINWINDOW WINDOW))) (if SELECTION then (RESETLST [RESETSAVE (PRINTLEVEL (QUOTE (2 . 5] (RESETSAVE *PRINT-ARRAY* NIL) (PROG ((ROWPROPSPACE (WINDOWPROP MAINWINDOW (QUOTE ROWPROPSPACE))) (ROWPROPS (WINDOWPROP MAINWINDOW (QUOTE ROWPROPS))) (VERTMARKS (WINDOWPROP MAINWINDOW (QUOTE VERTMARKS))) (SELROWPROP (fetch (TWODINSPECT.SELECTION ROWPROP) of SELECTION)) SELBOTTOM SELWIDTH SELLEFT) (SETQ SELBOTTOM (for VMARK in VERTMARKS as ROWPROP on ROWPROPS thereis (EQ ROWPROP SELROWPROP))) (SETQ SELWIDTH (PLSTRINGWIDTH (CAR SELROWPROP) WINDOW)) (SETQ SELLEFT (STRINGWIDTH ROWPROPSPACE WINDOW)) (WINDOWPROP WINDOW (QUOTE SELECTION) (create TWODINSPECT.SELECTION ROWPROP ← SELROWPROP ELTBOTTOM ← SELBOTTOM ELTWIDTH ← SELWIDTH ELTLEFT ← SELLEFT]) (TWODINSPECT.ADJUSTSELECTION [LAMBDA (WINDOW) (* jop: "30-Sep-85 21:53") (PROG [(SELECTION (WINDOWPROP WINDOW (QUOTE SELECTION] (if SELECTION then (RESETLST [RESETSAVE (PRINTLEVEL (QUOTE (2 . 5] (RESETSAVE *PRINT-ARRAY* NIL) (PROG ((DATUM (WINDOWPROP WINDOW (QUOTE DATUM))) (FETCHFN (WINDOWPROP WINDOW (QUOTE FETCHFN))) (ROWPROPS (WINDOWPROP WINDOW (QUOTE ROWPROPS))) (COLUMNPROPS (WINDOWPROP WINDOW (QUOTE COLUMNPROPS))) (VERTMARKS (WINDOWPROP WINDOW (QUOTE VERTMARKS))) (HORZMARKS (WINDOWPROP WINDOW (QUOTE HORZMARKS))) (SELROWPROP (fetch (TWODINSPECT.SELECTION ROWPROP) of SELECTION)) (SELCOLPROP (fetch (TWODINSPECT.SELECTION COLUMNPROP) of SELECTION)) SELBOTTOM SELWIDTH SELLEFT) (SETQ SELBOTTOM (for VMARK in VERTMARKS as ROWPROP on ROWPROPS thereis (EQ ROWPROP SELROWPROP))) (SETQ SELWIDTH (PLSTRINGWIDTH (APPLY* FETCHFN DATUM (CAR SELROWPROP) (CAR SELCOLPROP)) WINDOW)) (SETQ SELLEFT (IDIFFERENCE (ADD1 (for HMARK in HORZMARKS as COLPROP on COLUMNPROPS thereis (EQ COLPROP SELCOLPROP))) SELWIDTH)) (WINDOWPROP WINDOW (QUOTE SELECTION) (create TWODINSPECT.SELECTION ROWPROP ← SELROWPROP COLUMNPROP ← SELCOLPROP ELTBOTTOM ← SELBOTTOM ELTWIDTH ← SELWIDTH ELTLEFT ← SELLEFT]) (TWODINSPECT.REPAINTFN [LAMBDA (WINDOW WINDOWREGION) (* jop: " 2-Oct-85 00:11") (if (NULL WINDOWREGION) then (SETQ WINDOWREGION (DSPCLIPPINGREGION NIL WINDOW))) (RESETLST [RESETSAVE (PRINTLEVEL (QUOTE (2 . 5] (RESETSAVE PLVLFILEFLG T) (RESETSAVE *PRINT-ARRAY* NIL) (PROG ((TOP (fetch TOP of WINDOWREGION)) (BOTTOM (fetch BOTTOM of WINDOWREGION)) (LEFT (fetch LEFT of WINDOWREGION)) (RIGHT (fetch RIGHT of WINDOWREGION)) (FETCHFN (WINDOWPROP WINDOW (QUOTE FETCHFN))) (DATUM (WINDOWPROP WINDOW (QUOTE DATUM))) (VERTMARKS (WINDOWPROP WINDOW (QUOTE VERTMARKS))) (HORZMARKS (WINDOWPROP WINDOW (QUOTE HORZMARKS))) (ROWPROPS (WINDOWPROP WINDOW (QUOTE ROWPROPS))) (COLUMNPROPS (WINDOWPROP WINDOW (QUOTE COLUMNPROPS))) STARTROWPROPS LASTROWPROP STARTCOLUMNPROPS LASTCOLUMNPROP STARTVERTMARKS STARTHORZMARKS) (for ROWPROP on ROWPROPS as MARK on VERTMARKS until (ILESSP (CAR MARK) TOP) finally (SETQ STARTROWPROPS ROWPROP) (SETQ STARTVERTMARKS MARK)) (for ROWPROP on STARTROWPROPS as MARK in STARTVERTMARKS until (ILESSP MARK BOTTOM) finally (SETQ LASTROWPROP ROWPROP)) (for COLUMNPROP on COLUMNPROPS as MARK on HORZMARKS until (IGREATERP (CAR MARK) LEFT) finally (SETQ STARTCOLUMNPROPS COLUMNPROP) (SETQ STARTHORZMARKS MARK)) (for COLUMNPROP on STARTCOLUMNPROPS as MARK in STARTHORZMARKS until (IGREATERP MARK RIGHT) finally (SETQ LASTCOLUMNPROP COLUMNPROP)) [if (AND STARTROWPROPS STARTCOLUMNPROPS) then (for ROWPROP on STARTROWPROPS as VMARK in STARTVERTMARKS repeatuntil (EQ ROWPROP LASTROWPROP) do (bind (FDESCENT ←(FONTPROP WINDOW (QUOTE DESCENT))) for COLUMNPROP on STARTCOLUMNPROPS as HMARK in STARTHORZMARKS repeatuntil (EQ COLUMNPROP LASTCOLUMNPROP) do (TWODINSPECT.PRINTELEMENT (APPLY* FETCHFN DATUM (CAR ROWPROP) (CAR COLUMNPROP)) HMARK VMARK FDESCENT WINDOW] (TWODINSPECT.INVERTSELECTION WINDOW]) (TWODINSPECT.RESHAPEFN [LAMBDA (WINDOW) (* jop: " 6-Oct-85 18:33") (CLEARW WINDOW) (PROG [(SELECTION (WINDOWPROP WINDOW (QUOTE SELECTION] (TWODINSPECT.MAKEREGIONS WINDOW) (TWODINSPECT.ADJUSTSELECTION WINDOW) (TWODINSPECT.REPAINTFN WINDOW]) (TWODINSPECT.ROWPROPWIDTH [LAMBDA (ROWPROPS FONT) (* jop: "29-Sep-85 16:25") (* * Computes the MIN fieldwidth for the COLUMNPROP column of SLICE) (RESETLST [RESETSAVE (PRINTLEVEL (QUOTE (2 . 5] (RESETSAVE *PRINT-ARRAY* NIL) (PLSTRINGWIDTH (for ROWPROP in ROWPROPS largest (PLSTRINGWIDTH ROWPROP FONT)) FONT]) (TWODINSPECT.SCROLLFN [LAMBDA (WINDOW DX DY FLG) (* jop: "18-Jul-85 13:50") (PROG [(TOPWINDOW (WINDOWPROP WINDOW (QUOTE TOPWINDOW))) (RIGHTWINDOW (WINDOWPROP WINDOW (QUOTE RIGHTWINDOW] (if (OR (NOT (EQP 0 DX)) (FLOATP DX)) then (APPLY* (WINDOWPROP TOPWINDOW (QUOTE SCROLLFN)) TOPWINDOW DX 0 FLG)) (if (OR (NOT (EQP 0 DY)) (FLOATP DY)) then (APPLY* (WINDOWPROP RIGHTWINDOW (QUOTE SCROLLFN)) RIGHTWINDOW 0 DY FLG)) (SCROLLBYREPAINTFN WINDOW DX DY FLG]) (TWODINSPECT.SELECTCOLUMNPROP [LAMBDA (WINDOW COLUMNPROP) (* jop: "30-Sep-85 22:50") (* *) (PROG [(TOPWINDOW (WINDOWPROP WINDOW (QUOTE TOPWINDOW] (if (WINDOWPROP TOPWINDOW (QUOTE SELECTION)) then (TWODINSPECT.INVERTSELECTION TOPWINDOW)) (RESETLST [RESETSAVE (PRINTLEVEL (QUOTE (2 . 5] (RESETSAVE *PRINT-ARRAY* NIL) (PROG ((COLUMNPROPS (WINDOWPROP WINDOW (QUOTE COLUMNPROPS))) (HORZMARKS (WINDOWPROP WINDOW (QUOTE HORZMARKS))) SELECTEDCOLUMNPROP SELECTEDELTBOTTOM SELECTEDELTLEFT SELECTEDELTWIDTH) (SETQ SELECTEDCOLUMNPROP (for CPROP on COLUMNPROPS thereis (EQUAL (CAR CPROP) COLUMNPROP))) (SETQ SELECTEDELTBOTTOM 0) (SETQ SELECTEDELTWIDTH (PLSTRINGWIDTH (CAR SELECTEDCOLUMNPROP) WINDOW)) (SETQ SELECTEDELTLEFT (IDIFFERENCE (ADD1 (for HMARK in HORZMARKS as CPROP on COLUMNPROPS thereis (EQ CPROP SELECTEDCOLUMNPROP))) SELECTEDELTWIDTH)) (TWODINSPECT.INVERTREGION SELECTEDELTLEFT SELECTEDELTBOTTOM SELECTEDELTWIDTH (FONTPROP WINDOW (QUOTE HEIGHT)) TOPWINDOW) (WINDOWPROP TOPWINDOW (QUOTE SELECTION) (create TWODINSPECT.SELECTION COLUMNPROP ← SELECTEDCOLUMNPROP ELTWIDTH ← SELECTEDELTWIDTH ELTLEFT ← SELECTEDELTLEFT ELTBOTTOM ← SELECTEDELTBOTTOM]) (TWODINSPECT.SELECTITEM [LAMBDA (WINDOW ROWPROP COLUMNPROP) (* jop: " 1-Oct-85 21:00") (* *) (if (WINDOWPROP WINDOW (QUOTE SELECTION)) then (TWODINSPECT.INVERTSELECTION WINDOW)) (if (AND ROWPROP COLUMNPROP) then (RESETLST [RESETSAVE (PRINTLEVEL (QUOTE (2 . 5] (RESETSAVE *PRINT-ARRAY* NIL) (PROG ((DATUM (WINDOWPROP WINDOW (QUOTE DATUM))) (FETCHFN (WINDOWPROP WINDOW (QUOTE FETCHFN))) (ROWPROPS (WINDOWPROP WINDOW (QUOTE ROWPROPS))) (COLUMNPROPS (WINDOWPROP WINDOW (QUOTE COLUMNPROPS))) (VERTMARKS (WINDOWPROP WINDOW (QUOTE VERTMARKS))) (HORZMARKS (WINDOWPROP WINDOW (QUOTE HORZMARKS))) SELECTEDROWPROP SELECTEDCOLUMNPROP SELECTEDELTBOTTOM SELECTEDELTLEFT SELECTEDELTWIDTH) (SETQ SELECTEDROWPROP (for RPROP on ROWPROPS thereis (EQUAL (CAR RPROP) ROWPROP))) (SETQ SELECTEDCOLUMNPROP (for CPROP on COLUMNPROPS thereis (EQUAL (CAR CPROP) COLUMNPROP))) (SETQ SELECTEDELTBOTTOM (for VMARK in VERTMARKS as RPROP on ROWPROPS thereis (EQ RPROP SELECTEDROWPROP))) (SETQ SELECTEDELTWIDTH (PLSTRINGWIDTH (APPLY* FETCHFN DATUM ROWPROP COLUMNPROP) WINDOW)) (SETQ SELECTEDELTLEFT (IDIFFERENCE (ADD1 (for HMARK in HORZMARKS as CPROP on COLUMNPROPS thereis (EQ CPROP SELECTEDCOLUMNPROP))) SELECTEDELTWIDTH)) (TWODINSPECT.INVERTREGION SELECTEDELTLEFT SELECTEDELTBOTTOM SELECTEDELTWIDTH (FONTPROP WINDOW (QUOTE HEIGHT)) WINDOW) (WINDOWPROP WINDOW (QUOTE SELECTION) (create TWODINSPECT.SELECTION ROWPROP ← SELECTEDROWPROP COLUMNPROP ← SELECTEDCOLUMNPROP ELTWIDTH ← SELECTEDELTWIDTH ELTLEFT ← SELECTEDELTLEFT ELTBOTTOM ← SELECTEDELTBOTTOM]) (TWODINSPECT.SELECTROWPROP [LAMBDA (WINDOW ROWPROP) (* jop: "30-Sep-85 22:48") (* *) (PROG [(RIGHTWINDOW (WINDOWPROP WINDOW (QUOTE RIGHTWINDOW] (if (WINDOWPROP RIGHTWINDOW (QUOTE SELECTION)) then (TWODINSPECT.INVERTSELECTION RIGHTWINDOW)) (RESETLST [RESETSAVE (PRINTLEVEL (QUOTE (2 . 5] (RESETSAVE *PRINT-ARRAY* NIL) (PROG ((ROWPROPSPACE (WINDOWPROP WINDOW (QUOTE ROWPROPSPACE))) (ROWPROPS (WINDOWPROP WINDOW (QUOTE ROWPROPS))) (VERTMARKS (WINDOWPROP WINDOW (QUOTE VERTMARKS))) SELECTEDROWPROP SELECTEDELTBOTTOM SELECTEDELTLEFT SELECTEDELTWIDTH) (SETQ SELECTEDROWPROP (for RPROP on ROWPROPS thereis (EQUAL (CAR RPROP) ROWPROP))) (SETQ SELECTEDELTBOTTOM (for VMARK in VERTMARKS as RPROP on ROWPROPS thereis (EQ RPROP SELECTEDROWPROP))) (SETQ SELECTEDELTWIDTH (PLSTRINGWIDTH (CAR SELECTEDROWPROP) WINDOW)) (SETQ SELECTEDELTLEFT (STRINGWIDTH ROWPROPSPACE WINDOW)) (TWODINSPECT.INVERTREGION SELECTEDELTLEFT SELECTEDELTBOTTOM SELECTEDELTWIDTH (FONTPROP WINDOW (QUOTE HEIGHT)) RIGHTWINDOW) (WINDOWPROP RIGHTWINDOW (QUOTE SELECTION) (create TWODINSPECT.SELECTION ROWPROP ← SELECTEDROWPROP ELTWIDTH ← SELECTEDELTWIDTH ELTLEFT ← SELECTEDELTLEFT ELTBOTTOM ← SELECTEDELTBOTTOM]) (TWODINSPECT.SETELT [LAMBDA (ROWPROP COLUMNPROP WINDOW) (* jop: "30-Sep-85 20:45") (* *) (PROG ((PRTWINDOW (GETPROMPTWINDOW WINDOW)) NEWVALUE) [RESETFORM (SET.TTYINEDIT.WINDOW PRTWINDOW) (SETQ NEWVALUE (EVAL (CAR (TTYIN "NEWVALUE? " NIL NIL (QUOTE EVALQT) NIL NIL NIL T] (REMOVEPROMPTWINDOW WINDOW) (TWODINSPECT.REPLACE WINDOW ROWPROP COLUMNPROP NEWVALUE]) (TWODINSPECT.REPLACE [LAMBDA (WINDOW ROWPROP COLUMNPROP NEWVALUE) (* jop: "30-Sep-85 20:44") (PROG [(DATUM (WINDOWPROP WINDOW (QUOTE DATUM))) (STOREFN (WINDOWPROP WINDOW (QUOTE STOREFN] (APPLY* STOREFN NEWVALUE DATUM ROWPROP COLUMNPROP) (TWODINSPECT.REDISPLAY WINDOW ROWPROP COLUMNPROP]) (TWODINSPECT.RIGHTW.BUTTONEVENTFN [LAMBDA (WINDOW) (* jop: " 1-Oct-85 23:59") (* *) (TOTOPW WINDOW) (PROG ((MAINWINDOW (MAINWINDOW WINDOW)) (SELECTION (WINDOWPROP WINDOW (QUOTE SELECTION))) ROWPROPS ROWPROPCOMMANDFN VERTMARKS SELECTEDROWPROP SELECTEDELTBOTTOM SELECTEDELTLEFT SELECTEDELTWIDTH DATUM) (SETQ ROWPROPS (WINDOWPROP MAINWINDOW (QUOTE ROWPROPS))) (SETQ VERTMARKS (WINDOWPROP MAINWINDOW (QUOTE VERTMARKS))) (SETQ ROWPROPCOMMANDFN (WINDOWPROP MAINWINDOW (QUOTE ROWPROPCOMMANDFN))) (SETQ DATUM (WINDOWPROP MAINWINDOW (QUOTE DATUM))) (if ROWPROPCOMMANDFN then (if SELECTION then (SETQ SELECTEDROWPROP (fetch (TWODINSPECT.SELECTION ROWPROP) of SELECTION)) (SETQ SELECTEDELTBOTTOM (fetch (TWODINSPECT.SELECTION ELTBOTTOM) of SELECTION)) (SETQ SELECTEDELTLEFT (fetch (TWODINSPECT.SELECTION ELTLEFT) of SELECTION)) (SETQ SELECTEDELTWIDTH (fetch (TWODINSPECT.SELECTION ELTWIDTH) of SELECTION))) (if (MOUSESTATE LEFT) then [RESETLST [RESETSAVE (PRINTLEVEL (QUOTE (2 . 5] (RESETSAVE *PRINT-ARRAY* NIL) (bind (FHEIGHT ←(FONTPROP WINDOW (QUOTE HEIGHT))) (NEWELTLEFT ←(STRINGWIDTH (WINDOWPROP MAINWINDOW (QUOTE ROWPROPSPACE)) WINDOW)) CURSOR NEWROWPROP NEWVERTMARK NEWELTWIDTH repeatwhile (MOUSESTATE LEFT) do (SETQ CURSOR (CURSORPOSITION NIL WINDOW)) (bind (Y ←(fetch YCOORD of CURSOR)) for ROWPROP on ROWPROPS as VMARK in VERTMARKS until (ILESSP VMARK Y) finally (SETQ NEWROWPROP ROWPROP) (SETQ NEWVERTMARK VMARK)) (if NEWROWPROP then (SETQ NEWELTWIDTH (PLSTRINGWIDTH (CAR NEWROWPROP) WINDOW))) (* Select the new region only if the cursor is inside the element box) (if [AND NEWROWPROP (OR (ILESSP (fetch XCOORD of CURSOR) NEWELTLEFT) (IGREATERP (fetch XCOORD of CURSOR) (IPLUS NEWELTLEFT NEWELTWIDTH] then (SETQ NEWROWPROP NIL)) (if (NEQ NEWROWPROP SELECTEDROWPROP) then (* We need to consider highlighting a new region) (if SELECTEDROWPROP then (* Lowlight the old region) ( TWODINSPECT.INVERTREGION SELECTEDELTLEFT SELECTEDELTBOTTOM SELECTEDELTWIDTH FHEIGHT WINDOW) (SETQ SELECTEDROWPROP NIL)) (if NEWROWPROP then (* cursor inside element box, highlight that box) ( TWODINSPECT.INVERTREGION NEWELTLEFT NEWVERTMARK NEWELTWIDTH FHEIGHT WINDOW) (SETQ SELECTEDROWPROP NEWROWPROP) (SETQ SELECTEDELTWIDTH NEWELTWIDTH) (SETQ SELECTEDELTLEFT NEWELTLEFT) (SETQ SELECTEDELTBOTTOM NEWVERTMARK))) finally (if SELECTEDROWPROP then (WINDOWPROP WINDOW (QUOTE SELECTION) (create TWODINSPECT.SELECTION ROWPROP ← SELECTEDROWPROP ELTWIDTH ← SELECTEDELTWIDTH ELTLEFT ← SELECTEDELTLEFT ELTBOTTOM ← SELECTEDELTBOTTOM)) else (WINDOWPROP WINDOW (QUOTE SELECTION) NIL] else (* MOUSESTATE MIDDLE) (if SELECTION then (APPLY* ROWPROPCOMMANDFN (CAR SELECTEDROWPROP) DATUM MAINWINDOW]) (TWODINSPECT.RIGHTW.REPAINTFN [LAMBDA (WINDOW WINDOWREGION) (* jop: " 1-Oct-85 22:37") (if (NULL WINDOWREGION) then (SETQ WINDOWREGION (DSPCLIPPINGREGION NIL WINDOW))) (PROG ((DISPLAYW (MAINWINDOW WINDOW)) (TOP (fetch TOP of WINDOWREGION)) (BOTTOM (fetch BOTTOM of WINDOWREGION)) VERTMARKS ROWPROPS SPACE STARTROWPROPS LASTROWPROP STARTVERTMARKS) (SETQ VERTMARKS (WINDOWPROP DISPLAYW (QUOTE VERTMARKS))) (SETQ ROWPROPS (WINDOWPROP DISPLAYW (QUOTE ROWPROPS))) (SETQ SPACE (STRINGWIDTH (WINDOWPROP DISPLAYW (QUOTE ROWPROPSPACE)) WINDOW)) (for ROWPROP on ROWPROPS as MARK on VERTMARKS until (ILESSP (CAR MARK) TOP) finally (SETQ STARTROWPROPS ROWPROP) (SETQ STARTVERTMARKS MARK)) (for ROWPROP on STARTROWPROPS as MARK in STARTVERTMARKS until (ILESSP MARK BOTTOM) finally (SETQ LASTROWPROP ROWPROP)) [if STARTROWPROPS then (bind (FDESCENT ←(FONTPROP WINDOW (QUOTE DESCENT))) for ROWPROP on STARTROWPROPS as VERTMARK in STARTVERTMARKS repeatuntil (EQ ROWPROP LASTROWPROP) do (MOVETO SPACE (IPLUS VERTMARK FDESCENT) WINDOW) (PRINTOUT WINDOW (CAR ROWPROP] (TWODINSPECT.INVERTSELECTION WINDOW]) (TWODINSPECT.RIGHTW.RESHAPEFN [LAMBDA (WINDOW) (* jop: " 6-Oct-85 18:35") (CLEARW WINDOW) (TWODINSPECT.ADJUSTROWSELECTION WINDOW) (TWODINSPECT.RIGHTW.REPAINTFN WINDOW (DSPCLIPPINGREGION NIL WINDOW]) (TWODINSPECT.TOPW.BUTTONEVENTFN [LAMBDA (WINDOW) (* jop: "25-Nov-85 12:48") (* *) (TOTOPW WINDOW) (PROG ((MAINWINDOW (MAINWINDOW WINDOW)) (SELECTION (WINDOWPROP WINDOW (QUOTE SELECTION))) COLUMNPROPS HORZMARKS SELECTEDCOLUMNPROP SELECTEDELTBOTTOM SELECTEDELTLEFT SELECTEDELTWIDTH COLUMNPROPCOMMANDFN) (SETQ COLUMNPROPS (WINDOWPROP MAINWINDOW (QUOTE COLUMNPROPS))) (SETQ HORZMARKS (WINDOWPROP MAINWINDOW (QUOTE HORZMARKS))) (SETQ COLUMNPROPCOMMANDFN (WINDOWPROP MAINWINDOW (QUOTE COLUMNPROPCOMMANDFN))) (if COLUMNPROPCOMMANDFN then (if SELECTION then (SETQ SELECTEDCOLUMNPROP (fetch (TWODINSPECT.SELECTION COLUMNPROP) of SELECTION)) (SETQ SELECTEDELTBOTTOM (fetch (TWODINSPECT.SELECTION ELTBOTTOM) of SELECTION)) (SETQ SELECTEDELTLEFT (fetch (TWODINSPECT.SELECTION ELTLEFT) of SELECTION)) (SETQ SELECTEDELTWIDTH (fetch (TWODINSPECT.SELECTION ELTWIDTH) of SELECTION))) (if (MOUSESTATE LEFT) then [RESETLST [RESETSAVE (PRINTLEVEL (QUOTE (2 . 5] (RESETSAVE *PRINT-ARRAY* NIL) (bind (FHEIGHT ←(FONTPROP WINDOW (QUOTE HEIGHT))) X NEWCOLUMNPROP NEWHORZMARK NEWELTWIDTH NEWELTLEFT repeatwhile (MOUSESTATE LEFT) do (SETQ X (fetch XCOORD of (CURSORPOSITION NIL WINDOW)) ) (for COLUMNPROP on COLUMNPROPS as HORZMARK in HORZMARKS until (IGREATERP HORZMARK X) finally (SETQ NEWCOLUMNPROP COLUMNPROP) (SETQ NEWHORZMARK HORZMARK)) [if NEWCOLUMNPROP then (SETQ NEWELTWIDTH (PLSTRINGWIDTH (CAR NEWCOLUMNPROP) WINDOW)) (SETQ NEWELTLEFT (ADD1 (IDIFFERENCE NEWHORZMARK NEWELTWIDTH] (* Select the new region only if the cursor is inside the element box) (if (AND NEWCOLUMNPROP (ILESSP X NEWELTLEFT)) then (SETQ NEWCOLUMNPROP NIL)) (if (NEQ NEWCOLUMNPROP SELECTEDCOLUMNPROP) then (* We need to consider highlighting a new region) (if SELECTEDCOLUMNPROP then (* Lowlight the old region) ( TWODINSPECT.INVERTREGION SELECTEDELTLEFT SELECTEDELTBOTTOM SELECTEDELTWIDTH FHEIGHT WINDOW) (SETQ SELECTEDCOLUMNPROP NIL)) (if NEWCOLUMNPROP then (* cursor inside element box, highlight that box) ( TWODINSPECT.INVERTREGION NEWELTLEFT 0 NEWELTWIDTH FHEIGHT WINDOW) (SETQ SELECTEDCOLUMNPROP NEWCOLUMNPROP) (SETQ SELECTEDELTWIDTH NEWELTWIDTH) (SETQ SELECTEDELTLEFT NEWELTLEFT) (SETQ SELECTEDELTBOTTOM 0))) finally (if SELECTEDCOLUMNPROP then (WINDOWPROP WINDOW (QUOTE SELECTION) (create TWODINSPECT.SELECTION COLUMNPROP ← SELECTEDCOLUMNPROP ELTWIDTH ← SELECTEDELTWIDTH ELTLEFT ← SELECTEDELTLEFT ELTBOTTOM ← SELECTEDELTBOTTOM)) else (WINDOWPROP WINDOW (QUOTE SELECTION) NIL] else (* MOUSESTATE MIDDLE) (if SELECTION then (APPLY* COLUMNPROPCOMMANDFN (CAR SELECTEDCOLUMNPROP) (WINDOWPROP MAINWINDOW (QUOTE DATUM)) MAINWINDOW]) (TWODINSPECT.TOPW.REPAINTFN [LAMBDA (WINDOW WINDOWREGION) (* jop: "30-Sep-85 21:08") (if (NULL WINDOWREGION) then (SETQ WINDOWREGION (DSPCLIPPINGREGION NIL WINDOW))) (PROG ((DISPLAYW (MAINWINDOW WINDOW)) (LEFT (fetch LEFT of WINDOWREGION)) (RIGHT (fetch RIGHT of WINDOWREGION)) HORZMARKS COLUMNPROPS STARTCOLUMNPROPS LASTCOLUMNPROP STARTHORZMARKS) (SETQ HORZMARKS (WINDOWPROP DISPLAYW (QUOTE HORZMARKS))) (SETQ COLUMNPROPS (WINDOWPROP DISPLAYW (QUOTE COLUMNPROPS))) (for COLUMNPROP on COLUMNPROPS as MARK on HORZMARKS until (IGREATERP (CAR MARK) LEFT) finally (SETQ STARTCOLUMNPROPS COLUMNPROP) (SETQ STARTHORZMARKS MARK)) (for COLUMNPROP on STARTCOLUMNPROPS as MARK in STARTHORZMARKS until (IGREATERP MARK RIGHT) finally (SETQ LASTCOLUMNPROP COLUMNPROP)) [if STARTCOLUMNPROPS then (bind [BOTTOM ←(SUB1 (FONTPROP WINDOW (QUOTE DESCENT] for COLUMNPROP on STARTCOLUMNPROPS as HMARK in STARTHORZMARKS repeatuntil (EQ COLUMNPROP LASTCOLUMNPROP) do (MOVETO (ADD1 (DIFFERENCE HMARK (STRINGWIDTH (CAR COLUMNPROP) WINDOW))) BOTTOM WINDOW) (PRINTOUT WINDOW (CAR COLUMNPROP] (TWODINSPECT.INVERTSELECTION WINDOW]) (TWODINSPECT.TOPW.RESHAPEFN [LAMBDA (WINDOW) (* jop: " 6-Oct-85 18:35") (CLEARW WINDOW) (TWODINSPECT.ADJUSTCOLUMNSELECTION WINDOW) (TWODINSPECT.TOPW.REPAINTFN WINDOW (DSPCLIPPINGREGION NIL WINDOW]) (TWODINSPECT.TOTALWIDTH [LAMBDA (COLUMNWIDTHS SPACE FONT) (* jop: "25-Sep-85 13:21") (IPLUS (ITIMES (LENGTH COLUMNWIDTHS) (STRINGWIDTH SPACE FONT)) (for COLUMN in COLUMNWIDTHS sum COLUMN]) (LISTNCHARS [LAMBDA (LST DEPTH FONT FLG RDTBL) (* jop: "19-Jul-85 16:30") (* CDRVAL must be non-negative to get here) (if (EQP (CAR (PRINTLEVEL)) DEPTH) then 1 else (PROG ((TCDRLEVEL (DIFFERENCE (CDR (PRINTLEVEL)) DEPTH)) TOTALCHARS) [SETQ TOTALCHARS (PLUS 1 (for ITEM in LST as I from 0 while (GREATERP TCDRLEVEL I) sum (PLUS (if (LISTP ITEM) then (LISTNCHARS ITEM (ADD1 DEPTH) FLG RDTBL) else (NCHARS ITEM FLG RDTBL)) 1] (SETQ TOTALCHARS (PLUS TOTALCHARS (if (GREATERP (LENGTH LST) TCDRLEVEL) then 2 else -1) 1)) (RETURN TOTALCHARS]) (LISTSTRREGION [LAMBDA (LST DEPTH STREAM FLG RDTBL) (* jop: "19-Jul-85 16:54") (* CDRVAL must be non-negative to get here) (CREATEREGION (DSPXPOSITION NIL STREAM) (DIFFERENCE (DSPYPOSITION NIL STREAM) (FONTPROP STREAM (QUOTE DESCENT))) (PLSTRINGWIDTH LST STREAM FLG RDTBL) (FONTPROP STREAM (QUOTE HEIGHT]) (LISTSTRWIDTH [LAMBDA (LST DEPTH FONT FLG RDTBL) (* jop: "21-Jul-85 13:19") (* CDRVAL must be non-negative to get here) (if (EQP (CAR (PRINTLEVEL)) DEPTH) then (STRINGWIDTH (QUOTE &) FONT FLG RDTBL) else (PROG ((TCDRLEVEL (DIFFERENCE (CDR (PRINTLEVEL)) DEPTH)) (WIDTHOFSPACE (STRINGWIDTH (QUOTE % ) FONT FLG RDTBL)) TOTALWIDTH) [SETQ TOTALWIDTH (PLUS (STRINGWIDTH (QUOTE %() FONT FLG RDTBL) (for ITEM in LST as I from 0 while (GREATERP TCDRLEVEL I) sum (PLUS (if (LISTP ITEM) then (LISTSTRWIDTH ITEM (ADD1 DEPTH) FONT FLG RDTBL) else (STRINGWIDTH ITEM FONT FLG RDTBL)) WIDTHOFSPACE] (SETQ TOTALWIDTH (PLUS TOTALWIDTH (if (GREATERP (LENGTH LST) TCDRLEVEL) then (STRINGWIDTH (QUOTE --) FONT FLG RDTBL) else (IMINUS WIDTHOFSPACE)) (STRINGWIDTH (QUOTE %)) FONT FLG RDTBL))) (RETURN TOTALWIDTH]) (PLNCHARS [LAMBDA (STR FLG RDTBL) (* jop: "25-Jul-85 16:46") (* * A VERSION OF NCHARS WHICH PAYS ATTENTION TO PRINT LEVEL) (if (OR (NOT (LISTP STR)) (LESSP (CDR (PRINTLEVEL)) 0) (LESSP (CAR (PRINTLEVEL)) 0)) then (NCHARS STR FLG RDTBL) else (LISTNCHARS STR 0 FLG RDTBL]) (PLSTRINGREGION [LAMBDA (STR STREAM FLG RDTBL) (* jop: "21-Jul-85 13:42") (* * A VERSION OF STRINREGION WHICH PAYS ATTENTION TO PRINT LEVEL) (if (OR (NOT (LISTP STR)) (LESSP (CDR (PRINTLEVEL)) 0) (LESSP (CAR (PRINTLEVEL)) 0)) then (STRINGREGION STR STREAM FLG RDTBL) else (CREATEREGION (DSPXPOSITION NIL STREAM) (DIFFERENCE (DSPYPOSITION NIL STREAM) (FONTPROP STREAM (QUOTE DESCENT))) (PLSTRINGWIDTH STR STREAM FLG RDTBL) (FONTPROP STREAM (QUOTE HEIGHT]) (PLSTRINGWIDTH [LAMBDA (STR FONT FLG RDTBL) (* jop: "19-Jul-85 16:16") (* * A VERSION OF STRINGWIDTH WHICH PAYS ATTENTION TO PRINT LEVEL) (if (OR (NOT (LISTP STR)) (LESSP (CDR (PRINTLEVEL)) 0) (LESSP (CAR (PRINTLEVEL)) 0)) then (STRINGWIDTH STR FONT FLG RDTBL) else (LISTSTRWIDTH STR 0 FONT FLG RDTBL]) ) (RPAQ? INSPECTORFONT NIL) (DECLARE: DOEVAL@COMPILE DONTCOPY (GLOBALVARS INSPECTORFONT) ) (/DECLAREDATATYPE (QUOTE ICMLARRAY.ACTIVEREGION) (QUOTE (POINTER POINTER POINTER)) (QUOTE ((ICMLARRAY.ACTIVEREGION 0 POINTER) (ICMLARRAY.ACTIVEREGION 2 POINTER) (ICMLARRAY.ACTIVEREGION 4 POINTER))) (QUOTE 6)) (/DECLAREDATATYPE (QUOTE ONEDINSPECT.SELECTION) (QUOTE (POINTER POINTER POINTER POINTER)) (QUOTE ((ONEDINSPECT.SELECTION 0 POINTER) (ONEDINSPECT.SELECTION 2 POINTER) (ONEDINSPECT.SELECTION 4 POINTER) (ONEDINSPECT.SELECTION 6 POINTER))) (QUOTE 8)) (/DECLAREDATATYPE (QUOTE TWODINSPECT.SELECTION) (QUOTE (POINTER POINTER POINTER POINTER POINTER)) (QUOTE ((TWODINSPECT.SELECTION 0 POINTER) (TWODINSPECT.SELECTION 2 POINTER) (TWODINSPECT.SELECTION 4 POINTER) (TWODINSPECT.SELECTION 6 POINTER) (TWODINSPECT.SELECTION 8 POINTER))) (QUOTE 10)) (DECLARE: DOEVAL@COMPILE DONTCOPY [DECLARE: EVAL@COMPILE (DATATYPE ICMLARRAY.ACTIVEREGION (REGION FUNCTION DATA)) (DATATYPE ONEDINSPECT.SELECTION (PROP ELTBOTTOM ELTLEFT ELTWIDTH)) (DATATYPE TWODINSPECT.SELECTION (ROWPROP COLUMNPROP ELTBOTTOM ELTLEFT ELTWIDTH)) ] (/DECLAREDATATYPE (QUOTE ICMLARRAY.ACTIVEREGION) (QUOTE (POINTER POINTER POINTER)) (QUOTE ((ICMLARRAY.ACTIVEREGION 0 POINTER) (ICMLARRAY.ACTIVEREGION 2 POINTER) (ICMLARRAY.ACTIVEREGION 4 POINTER))) (QUOTE 6)) (/DECLAREDATATYPE (QUOTE ONEDINSPECT.SELECTION) (QUOTE (POINTER POINTER POINTER POINTER)) (QUOTE ((ONEDINSPECT.SELECTION 0 POINTER) (ONEDINSPECT.SELECTION 2 POINTER) (ONEDINSPECT.SELECTION 4 POINTER) (ONEDINSPECT.SELECTION 6 POINTER))) (QUOTE 8)) (/DECLAREDATATYPE (QUOTE TWODINSPECT.SELECTION) (QUOTE (POINTER POINTER POINTER POINTER POINTER)) (QUOTE ((TWODINSPECT.SELECTION 0 POINTER) (TWODINSPECT.SELECTION 2 POINTER) (TWODINSPECT.SELECTION 4 POINTER) (TWODINSPECT.SELECTION 6 POINTER) (TWODINSPECT.SELECTION 8 POINTER))) (QUOTE 10)) ) (DECLARE: DONTEVAL@LOAD DOEVAL@COMPILE DONTCOPY (DECLARE: DOEVAL@COMPILE DONTCOPY (LOCALVARS . T) ) ) (PUTPROPS TWODINSPECTOR COPYRIGHT ("Xerox Corporation" 1985 1900)) (DECLARE: DONTCOPY (FILEMAP (NIL (2644 101210 (ONEDINSPECT.PROPWIDTH 2654 . 3078) (ONEDINSPECT.REDISPLAY 3080 . 5579) ( ONEDINSPECT.VALUEWIDTH 5581 . 6102) (ONEDINSPECT.ADJUSTPROPSELECTION 6104 . 7355) ( ONEDINSPECT.ADJUSTSELECTION 7357 . 8405) (ONEDINSPECT.ARRANGEWINDOWS 8407 . 12678) ( ONEDINSPECT.BUTTONEVENTFN 12680 . 16492) (ONEDINSPECT.CLOSEFN 16494 . 16806) ( ONEDINSPECT.DEFAULT.TITLECOMMANDFN 16808 . 17684) (ONEDINSPECT.DEFAULT.VALUECOMMANDFN 17686 . 18956) ( ONEDINSPECT.INVERTSELECTION 18958 . 19555) (ONEDINSPECT.MAKEREGIONS 19557 . 21203) ( ONEDINSPECT.PRINTELEMENT 21205 . 21442) (ONEDINSPECT.REPAINTFN 21444 . 22950) (ONEDINSPECT.REPLACE 22952 . 23291) (ONEDINSPECT.RESHAPEFN 23293 . 23635) (ONEDINSPECT.RIGHTW.BUTTONEVENTFN 23637 . 28007) (ONEDINSPECT.RIGHTW.REPAINTFN 28009 . 29451) (ONEDINSPECT.RIGHTW.RESHAPEFN 29453 . 29698) ( ONEDINSPECT.SCROLLFN 29700 . 30123) (ONEDINSPECT.SELECTITEM 30125 . 31692) (ONEDINSPECT.SELECTPROP 31694 . 33281) (ONEDINSPECT.SETELT 33283 . 34002) (ONEDINSPECTW.CREATE 34004 . 39298) ( TWODINSPECT.COLUMNWIDTH 39300 . 39941) (TWODINSPECT.COLUMNWIDTHS 39943 . 40281) (TWODINSPECT.CLOSEFN 40283 . 40771) (TWODINSPECT.ARRANGEWINDOWS 40773 . 46338) (TWODINSPECTW.CREATE 46340 . 53551) ( TITLEW.BUTTONEVENTFN 53553 . 53954) (TWODINSPECT.DEFAULT.TITLECOMMANDFN 53956 . 54832) ( TITLEW.REPAINTFN 54834 . 55186) (TWODINSPECT.INVERTREGION 55188 . 55431) (TWODINSPECT.BUTTONEVENTFN 55433 . 60544) (TWODINSPECT.DEFAULT.VALUECOMMANDFN 60546 . 61830) (TWODINSPECT.DOWINDOWCOMFN 61832 . 62407) (TWODINSPECT.MAKEREGIONS 62409 . 64736) (TWODINSPECT.PRINTELEMENT 64738 . 65040) ( TWODINSPECT.REDISPLAY 65042 . 68780) (TWODINSPECT.INVERTSELECTION 68782 . 69379) ( TWODINSPECT.ADJUSTCOLUMNSELECTION 69381 . 70658) (TWODINSPECT.ADJUSTROWSELECTION 70660 . 71952) ( TWODINSPECT.ADJUSTSELECTION 71954 . 73725) (TWODINSPECT.REPAINTFN 73727 . 76242) ( TWODINSPECT.RESHAPEFN 76244 . 76586) (TWODINSPECT.ROWPROPWIDTH 76588 . 77024) (TWODINSPECT.SCROLLFN 77026 . 77686) (TWODINSPECT.SELECTCOLUMNPROP 77688 . 79318) (TWODINSPECT.SELECTITEM 79320 . 81472) ( TWODINSPECT.SELECTROWPROP 81474 . 83121) (TWODINSPECT.SETELT 83123 . 83630) (TWODINSPECT.REPLACE 83632 . 83999) (TWODINSPECT.RIGHTW.BUTTONEVENTFN 84001 . 88644) (TWODINSPECT.RIGHTW.REPAINTFN 88646 . 90154 ) (TWODINSPECT.RIGHTW.RESHAPEFN 90156 . 90434) (TWODINSPECT.TOPW.BUTTONEVENTFN 90436 . 94937) ( TWODINSPECT.TOPW.REPAINTFN 94939 . 96474) (TWODINSPECT.TOPW.RESHAPEFN 96476 . 96753) ( TWODINSPECT.TOTALWIDTH 96755 . 97019) (LISTNCHARS 97021 . 97944) (LISTSTRREGION 97946 . 98409) ( LISTSTRWIDTH 98411 . 99688) (PLNCHARS 99690 . 100109) (PLSTRINGREGION 100111 . 100760) (PLSTRINGWIDTH 100762 . 101208))))) STOP