(FILECREATED " 4-Jul-86 20:58:33" {QV}<NOTECARDS>1.3K>RHTPATCH053.;2 6204
changes to: (VARS RHTPATCH053COMS)
(FNS NC.GETPROMPTWINDOW)
previous date: " 4-Jul-86 18:46:54" {QV}<NOTECARDS>1.3K>RHTPATCH053.;1)
(* Copyright (c) 1986 by Xerox Corporation. All rights reserved.)
(PRETTYCOMPRINT RHTPATCH053COMS)
(RPAQQ RHTPATCH053COMS ((* * Change to NCINTERFACE)
(FNS NC.GETPROMPTWINDOW)))
(* * Change to NCINTERFACE)
(DEFINEQ
(NC.GETPROMPTWINDOW
(LAMBDA (MAINWINDOW #LINES FONT DONTCREATE MINWIDTH) (* rht: " 4-Jul-86 18:44")
(* makes sure that MAINWINDOW has an attached promptwindow and returns it. If one already exists, it is shaped to
be at least #LINES high. If FONT is NIL, the font of the main window is used for the promptwindow.)
(* * fgh 6/6/86 Adapted from system GETPROMPTWINDOW. Added MINWIDTH arg.)
(* * rht 7/2/86: Now attaches prompt window on right if near right edge of screen.)
(* * rht 7/4/86: Yanked out PositionOnEdge localvar. Put code in place.)
(PROG ((PWINDOWPROP (WINDOWPROP MAINWINDOW (QUOTE PROMPTWINDOW)))
(PWINDOWMINWIDTH (WINDOWPROP MAINWINDOW (QUOTE PROMPTWINDOWMINWIDTH)))
(MAINWINDOWREGION (WINDOWPROP MAINWINDOW (QUOTE REGION)))
PWINDOW PWINDOWREGION WIDTH HEIGHT OBSCUREDHEIGHT PWINDOW.PWINDOW)
(COND
(DONTCREATE (RETURN (CAR PWINDOWPROP)))
(PWINDOWPROP (SETQ PWINDOW (CAR PWINDOWPROP))
(COND
((NOT (OPENWP PWINDOW))
(ATTACHWINDOW PWINDOW MAINWINDOW (QUOTE TOP)
(if (GREATERP (PLUS (fetch (REGION LEFT)
of MAINWINDOWREGION)
(WIDTHIFWINDOW
(OR MINWIDTH
PWINDOWMINWIDTH)))
SCREENWIDTH)
then (QUOTE RIGHT)
else (QUOTE LEFT))
(QUOTE LOCALCLOSE))))
(if (SETQ PWINDOW.PWINDOW (WINDOWPROP PWINDOW (QUOTE PROMPTWINDOW))
)
then (* This prompt window has a prompt window of its own.
Close and detach it.)
(FREEATTACHEDWINDOW (CAR PWINDOW.PWINDOW))
(CLOSEW (CAR PWINDOW.PWINDOW)))
(WINDOWPROP PWINDOW (QUOTE MAXSIZE)
(CONS 64000 64000))
(WINDOWPROP PWINDOW (QUOTE MINSIZE)
(CONS 1 1))
(SETQ HEIGHT (HEIGHTIFWINDOW (TIMES (OR #LINES (CDR PWINDOWPROP)
1)
(FONTPROP (DSPFONT NIL
PWINDOW)
(QUOTE HEIGHT)))))
(SETQ WIDTH (MAX (WIDTHIFWINDOW (OR MINWIDTH PWINDOWMINWIDTH 1))
(fetch (REGION WIDTH) of MAINWINDOWREGION)))
(SETQ PWINDOWREGION (WINDOWPROP PWINDOW (QUOTE REGION)))
(COND
((OR (NOT (EQP HEIGHT (fetch (REGION HEIGHT) of PWINDOWREGION))
)
(NOT (EQP WIDTH (fetch (REGION WIDTH) of PWINDOWREGION))))
(* Window exists, but not right size.)
(SHAPEW PWINDOW
(if (LEQ (PLUS (fetch (REGION LEFT) of
MAINWINDOWREGION)
(WIDTHIFWINDOW (OR MINWIDTH
PWINDOWMINWIDTH)))
SCREENWIDTH)
then (create REGION
using PWINDOWREGION HEIGHT ← HEIGHT WIDTH ←
WIDTH)
else (create REGION
BOTTOM ←(fetch (REGION BOTTOM)
of PWINDOWREGION)
LEFT ←(DIFFERENCE
(PLUS (fetch (REGION LEFT)
of MAINWINDOWREGION)
(fetch (REGION WIDTH)
of MAINWINDOWREGION))
WIDTH)
HEIGHT ← HEIGHT
WIDTH ← WIDTH)))
(RPLACD PWINDOWPROP #LINES)
(* Fall through to check visibility)
)))
(T (SETQ PWINDOW (CREATEW (create REGION
LEFT ← 0
BOTTOM ← 0
WIDTH ←(MAX (OR MINWIDTH 1)
(fetch (REGION WIDTH)
of MAINWINDOWREGION))
HEIGHT ←(SETQ HEIGHT
(HEIGHTIFWINDOW
(TIMES (OR #LINES (SETQ #LINES 1))
(FONTPROP (OR FONT
(SETQ FONT
(DSPFONT
NIL
MAINWINDOW)))
(QUOTE HEIGHT))))))
NIL NIL T))
(DSPSCROLL T PWINDOW)
(DSPFONT FONT PWINDOW)
(WINDOWPROP PWINDOW (QUOTE PAGEFULLFN)
(QUOTE NILL))
(ATTACHWINDOW PWINDOW MAINWINDOW (QUOTE TOP)
(if (GREATERP (PLUS (fetch (REGION LEFT) of
MAINWINDOWREGION)
(WIDTHIFWINDOW (OR MINWIDTH
PWINDOWMINWIDTH)))
SCREENWIDTH)
then (QUOTE RIGHT)
else (QUOTE LEFT))
(QUOTE LOCALCLOSE))
(WINDOWPROP MAINWINDOW (QUOTE PROMPTWINDOW)
(CONS PWINDOW #LINES))
(WINDOWPROP PWINDOW (QUOTE OPENFN)
(FUNCTION \PROMPTWINDOW.OPENFN))))
(COND
((ILESSP (SETQ OBSCUREDHEIGHT (IDIFFERENCE SCREENHEIGHT
(fetch (REGION TOP)
of (WINDOWPROP PWINDOW
(QUOTE REGION))
)))
0) (* Promptwindow off screen at top, so slip window
group down to make it visible)
(RELMOVEW MAINWINDOW (create POSITION
XCOORD ← 0
YCOORD ← OBSCUREDHEIGHT))))
(WINDOWPROP PWINDOW (QUOTE MINSIZE)
(CONS 1 HEIGHT))
(WINDOWPROP PWINDOW (QUOTE MAXSIZE)
(CONS 64000 HEIGHT))
(WINDOWPROP MAINWINDOW (QUOTE PROMPTWINDOWMINWIDTH)
(OR MINWIDTH 1))
(OPENW PWINDOW)
(RETURN PWINDOW))))
)
(PUTPROPS RHTPATCH053 COPYRIGHT ("Xerox Corporation" 1986))
(DECLARE: DONTCOPY
(FILEMAP (NIL (460 6122 (NC.GETPROMPTWINDOW 470 . 6120)))))
STOP