(FILECREATED "19-JUL-78 01:38:57" <KRL>DISPLAYFNS.;40 10749 changes to: VISIBLE TracePrint previous date: "10-JUL-78 13:55:22" <KRL>DISPLAYFNS.;39) (PRETTYCOMPRINT DISPLAYFNSCOMS) (RPAQQ DISPLAYFNSCOMS [(* various display printing FNS) (FNS * DPRINTFNS) (* various window manipulating functions) (FNS * MWINFNS) (VARS MFONTSHRINKLST) (* Fns for other DLISP things, like Documents, Canvases, Desktops, etc.) (FNS * MDOCFNS) (IFPROP WINDOWSPECS TESTWIN) (IFPROP CURSOR KEYSET SYMBOL) (ADDVARS (CURSORLST KEYSET SYMBOL)) (DECLARE: DONTEVAL@LOAD DOEVAL@COMPILE DONTCOPY (LOCALVARS . T)) (DECLARE: DONTEVAL@LOAD DOEVAL@COMPILE DONTCOPY COMPILERVARS (ADDVARS (NLAMA) (NLAML DPPV DPP DPPU))) (DECLARE: DONTCOPY EVAL@COMPILE DONTEVAL@LOAD (P (COND ((EQ (GETATOMVAL (QUOTE RECORDSCOMS)) (QUOTE NOBIND)) (LOAD (QUOTE <KBA>RECORDS) T))) (COND ((EQ (GETATOMVAL (QUOTE DISPCOMPCOMS)) (QUOTE NOBIND)) (LOAD (QUOTE <KBA>DISPCOMP) T]) (* various display printing FNS) (RPAQQ DPRINTFNS (DPPU DPP DPPV KPRETTYPRINT TracePrint)) (DEFINEQ (DPPU [NLAMBDA (UNIT) (* mlm: " 3-MAR-78 14:19") (SETWINDOWSPECS 'KRLWORKAREA '((VISIBLE T) (ONTOP T))) (VISIBLE 'KRLWORKDESK) (fetch (DISPEDITREC VALUE) of (DISPEDIT NIL [FUNCTION (LAMBDA NIL (PROG ((GCGAGFLG T)) (RESETSAVE (ECHOES 'PP)) (ADISREGION (ADISTTYREGION)) (if ADISOFILE then (TERPRI T) (TERPRI T)) (PUPCOPYBYTES CONTROLIN T 26) (RETURN UNIT] 'KRLWORKAREA (create GLUMPID NAME ← UNIT WHENDONE ←('DONEKEDITING) OTHER ←('UNIT]) (DPP [NLAMBDA (ATM DEF) (* mlm: "15-FEB-78 12:48") (KPRETTYPRINT ATM DEF 'FN 2 T]) (DPPV [NLAMBDA (ATM DEF) (KPRETTYPRINT ATM DEF 'VAR NIL T]) (KPRETTYPRINT [LAMBDA (ATM EXPR OTHER LEFT DEF TAILFLG) (DECLARE (SPECVARS . T)) (* mlm: "27-APR-78 16:54") (VISIBLE 'KRLWORKDESK) (fetch (DISPEDITREC VALUE) of (DISPEDIT NIL [FUNCTION (LAMBDA NIL (PROG (PRETTYTABFLG TEM (FIRSTCOL ('(40 . 5))) (FONTCHANGEFLG (AND ADISOFILE 'ALL)) **COMMENT**FLG (GCGAGFLG T)) (DECLARE (SPECVARS . T)) (RESETSAVE (ECHOES 'PP)) (ADISREGION (ADISTTYREGION)) (if ADISOFILE then (TERPRI T) (TERPRI T)) (if FONTCHANGEFLG='ALL then (PROG (FILEFLG LASTFONT) (DECLARE (SPECVARS . T)) (CHANGEFONT LAMBDAFONT) (if OTHER='FN then (PRIN1 "(" T)) (PRIN2 ATM T) (CHANGEFONT DEFAULTFONT) (TERPRI))) (RETURN (PROG1 (PRINTDEF EXPR LEFT (OR DEF '( NIL)) TAILFLG) (AND OTHER='FN (PRIN1 ") " T] 'KRLWORKAREA (create GLUMPID NAME ← ATM WHENDONE ←('DONEKEDITING) OTHER ← OTHER]) (TracePrint [LAMBDA (WIN NAME OTHER GLUMPFLG) (* mlm: " 6-MAR-78 09:39") (* generalized trace printer) (PROG ($DOC ($WIN (GETWINDOW WIN))) (VISIBLE $WIN) ($DOC←$WIN:DOCWINDOW.DOCUMENT) (if GLUMPFLG then (NEWGLUMP $DOC NAME)) [RESETFORM (OUTPUT $DOC:DOCUMENT.FILENAME) (PROGN (TERPRI) (PRINTXDTMSG BOLDMSG) (PRINT NAME) (PRINTXDTMSG NORMALMSG) (for XX in OTHER do (SPACES 3) (if (NLISTP XX) then (PRIN1 XX) else (PRINTXDTMSG ITALICMSG) (PRIN1 XX:1) (PRIN1 ": ") (PRINTXDTMSG NORMALMSG) (PRIN1 XX::1)) (TERPRI] (if GLUMPFLG then (SETWINDOWCONTENTS WIN NAME)) (UPDATEDOCUMENT $DOC]) ) (* various window manipulating functions) (RPAQQ MWINFNS (BlotWindow UnblotWindow CLEARWINDOW MSHRINKWINDOW VISIBLE INVISIBLE)) (DEFINEQ (BlotWindow [LAMBDA (WindowName) (* edited: " 7-NOV-77 19:17") (* assumes WindowName is a DOCWINDOW) (PROG ($CAPREG ($WIN (GETWINDOW WindowName))) ($CAPREG←$WIN:WINDOW.CAPTION) (SETWINDOWSPECS WindowName 'VISIBLE) (PUTPROP WindowName 'UNBLOTSPECS <<'CAPTION <'BACKGROUND (if (ATOM $CAPREG) then 0 else $CAPREG:CAPTION.BACKGROUND) >> <'BACKGROUND $WIN:WINDOW.BACKGROUND> <'BOLD $WIN:DOCWINDOW.BOLD>>) (SETWINDOWSPECS WindowName '((BACKGROUND BIGWHITESPOTS) (CAPTION (BACKGROUND BIGWHITESPOTS]) (UnblotWindow [LAMBDA (WindowName) (PROG ((UNBLOTSPECS (GETPROP WindowName 'UNBLOTSPECS))) (if UNBLOTSPECS=NIL then (PRIN1 " No UNBLOTSPECS for window " T) (PRINT WindowName T) (PRIN1 "so ignoring UnblotWindow. ")) (SETWINDOWSPECS WindowName '((ONTOP T) (VISIBLE T))) (SETWINDOWSPECS WindowName UNBLOTSPECS) (REMPROP WindowName 'UNBLOTSPECS) (RETURN WindowName]) (CLEARWINDOW [LAMBDA (WIN BACKGROUND) (* edited: "14-NOV-77 18:28") (PROG (($WIN (GETWINDOW WIN)) REG) (SELECTQ BACKGROUND (NIL BACKGROUND←0) (T BACKGROUND←$WIN:WINDOW.BACKGROUND) (OR (NUMBERP BACKGROUND) BACKGROUND←(GETPROP BACKGROUND 'BACKGROUND))) (* (REG← (COPY ($WIN:SUBWINDOW.REGION))) (REG:REGION.LFT←REG:REGION.LFT+1) (REG:REGION.WDTH←REG:REGION.WDTH-2) (REG:REGION.BTM←REG:REGION.BTM+1) (REG:REGION.HGHT←REG:REGION.HGHT-2) (* so as not to wipe out box around window!!)) (CLEARSCREEN $WIN:WINDOW.INTERIOREGION BACKGROUND 'REPLACE]) (MSHRINKWINDOW [LAMBDA (WIN PERCENT FONTSHRINKFLG RIGHTANCHORFLG BOTTOMANCHORFLG) (* edited: " 4-NOV-77 18:27") (* anchors left unless RIGHTANCHORFLG - anchors top unless BOTTOMANCHORFLG - PERCENT is number (reals are actual factors, integers are implied percents) (.25 means 25% of current AREA, 150 150% of current AREA, etc) or dotted pair (HORIZ . VERT) or list (HORIZ VERT) - if WIN is a list, does it for all in WIN) (if (LISTP WIN) then (for W in WIN do (SHRINKWINDOW W PERCENT FONTSHRINKFLG RIGHTANCHORFLG BOTTOMANCHORFLG)) else (PROG (($WIN (GETWINDOW WIN)) CURRWIDTH CURRHEIGHT HPC VPC CURRFONT NEWFONT) (if (LISTP PERCENT) then HPC←PERCENT:1 VPC←(if (LISTP PERCENT::1) then (CADR PERCENT) else PERCENT::1) (if (SMALLP HPC) then HPC←HPC/100.0) (if (SMALLP VPC) then VPC←VPC/100.0) else HPC←VPC←(SQRT (if (SMALLP PERCENT) then PERCENT/100.0 else PERCENT))) (CURRWIDTH←$WIN:WINDOW.WIDTH) (CURRHEIGHT←$WIN:WINDOW.HEIGHT) (SETWINDOWSPECS WIN <<'WIDTH (FTIMES CURRWIDTH HPC)> <'HEIGHT (FTIMES CURRHEIGHT VPC)> <(if RIGHTANCHORFLG then 'RIGHT else 'LEFT) 'SAME > <(if BOTTOMANCHORFLG then 'BOTTOM else 'TOP) 'SAME >>) (if FONTSHRINKFLG then CURRFONT←(if (type? DOCWINDOW $WIN) then $WIN:DOCWINDOW.FONTREC:FONTREC.FONTNUMBER) NEWFONT←(FASSOC CURRFONT FONTSHRINKLST) NEWFONT←(if (FGREATERP HPC 1.0) then (CADDR NEWFONT) else (CADR NEWFONT)) (* that is, FONTSHRINKLST is of form ((FontNumber ShrinkFont GrowFont) %. %. %.)) (if CURRFONT~=NEWFONT then (SETWINDOWSPECS WIN <<'FONT NEWFONT>>]) (VISIBLE [LAMBDA (WIN) (* mlm: " 3-MAR-78 13:17") (PROG (($WIN (GETWINDOW WIN))) (SETWINDOWSPECS $WIN '((ONTOP T) (VISIBLE T))) (TOUCHWINDOW $WIN) (for $W in $WIN:WINDOW.ONDESKTOP:DESKTOP.WINDOWS do (SETWINDOWSPECS $W '((VISIBLE T) (ONTOP T]) (INVISIBLE [LAMBDA (WIN) (* mlm: " 3-MAR-78 13:24") (PROG (($WIN (GETWINDOW WIN))) (SETWINDOWSPECS $WIN '((VISIBLE NIL))) (if ~(for W in $WIN:WINDOW.ONDESKTOP:DESKTOP.CONTENTS thereis (GETWINDOW W) :WINDOW.VISIBLEFLG) then (for $DW in $WIN:WINDOW.ONDESKTOP:DESKTOP.WINDOWS do (SETWINDOWSPECS $DW '((VISIBLE NIL]) ) (RPAQQ MFONTSHRINKLST ((0 1 5) (1 2 0) (2 2 1) (3 4 3) (4 4 3) (5 0 5))) (* Fns for other DLISP things, like Documents, Canvases, Desktops, etc.) (RPAQQ MDOCFNS (GLUMPSTRING)) (DEFINEQ (GLUMPSTRING [LAMBDA (GLUMP) (GETSTRING (GLUMP:GLUMP.STARTADR) (GLUMP:GLUMP.ENDADR]) ) (PUTPROPS TESTWIN WINDOWSPECS ((LEFT 50) (RIGHT 450) (BOTTOM 50) (TOP 275) (CAPTION "Test Window" (BACKGROUND LIGHTGREY)) (INITIMEFUSE 15))) (PUTPROPS KEYSET CURSOR ((#647604 7 7) 65535 - 32769 - 65535 60855 - 28086 - - - - - - - -)) (PUTPROPS SYMBOL CURSOR ((#647623 7 0) 65535 - 32769 - 33153 384 - - - - - - - - - -)) (ADDTOVAR CURSORLST KEYSET SYMBOL) (DECLARE: DONTEVAL@LOAD DOEVAL@COMPILE DONTCOPY (DECLARE: DOEVAL@COMPILE DONTCOPY (LOCALVARS . T) ) ) (DECLARE: DONTEVAL@LOAD DOEVAL@COMPILE DONTCOPY COMPILERVARS (ADDTOVAR NLAMA ) (ADDTOVAR NLAML DPPV DPP DPPU) ) (DECLARE: DONTCOPY EVAL@COMPILE DONTEVAL@LOAD (COND ((EQ (GETATOMVAL (QUOTE RECORDSCOMS)) (QUOTE NOBIND)) (LOAD (QUOTE <KBA>RECORDS) T))) (COND ((EQ (GETATOMVAL (QUOTE DISPCOMPCOMS)) (QUOTE NOBIND)) (LOAD (QUOTE <KBA>DISPCOMP) T))) ) (DECLARE: DONTCOPY (FILEMAP (NIL (1279 4375 (DPPU 1291 . 1954) (DPP 1958 . 2099) (DPPV 2103 . 2178) (KPRETTYPRINT 2182 . 3428) (TracePrint 3432 . 4372)) (4529 9379 (BlotWindow 4541 . 5280) (UnblotWindow 5284 . 5749) ( CLEARWINDOW 5753 . 6426) (MSHRINKWINDOW 6430 . 8533) (VISIBLE 8537 . 8916) (INVISIBLE 8920 . 9376)) ( 9638 9758 (GLUMPSTRING 9650 . 9755))))) STOP