Rmk121 Modernize the EDITBM window (#2265)
* Modernize the EDITBM window so that it can be moved and resized like other modern windows * Move lispusers/FASTEDITBM to obsolete/lispusers It isn't used, doesn't even have an LCOM. But maybe it would be worth resurrecting at some time in the future.
This commit is contained in:
@@ -1,23 +1,23 @@
|
||||
(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
|
||||
(FILECREATED "15-Mar-94 10:48:02" {DSK}<users>nilsson>mnw>HLDISPLAY.;5 206399
|
||||
|
||||
changes to%: (FNS \GETREGION.CHECKBASEPT DSPYSCREENTOWINDOW DSPXSCREENTOWINDOW
|
||||
\GETREGION.CHECKOPPT GETGRIDBOXREGION NEAREST/PT/ON/GRID EDITBMBUTTONFN)
|
||||
(FILECREATED " 2-Aug-2025 10:16:35"
|
||||
{DSK}<Users>kaplan>Local>medley3.5>working-medley>sources>HLDISPLAY.;2 205096
|
||||
|
||||
previous date%: "25-Feb-94 14:50:58" {DSK}<users>nilsson>mnw>HLDISPLAY.;4)
|
||||
:EDIT-BY rmk
|
||||
|
||||
:CHANGES-TO (FNS EDITBM)
|
||||
|
||||
:PREVIOUS-DATE "15-Mar-94 10:48:02"
|
||||
{DSK}<Users>kaplan>Local>medley3.5>working-medley>sources>HLDISPLAY.;1)
|
||||
|
||||
(* ; "
|
||||
Copyright (c) 1982, 1983, 1984, 1985, 1986, 1987, 1900, 1988, 1989, 1990, 1992, 1993, 1994 by Venue & Xerox Corporation. All rights reserved.
|
||||
")
|
||||
|
||||
(PRETTYCOMPRINT HLDISPLAYCOMS)
|
||||
|
||||
(RPAQQ HLDISPLAYCOMS
|
||||
(RPAQQ HLDISPLAYCOMS
|
||||
( (* ; "GRID functions")
|
||||
(FNS GRID GRIDXCOORD GRIDYCOORD LEFTOFGRIDCOORD BOTTOMOFGRIDCOORD SHADEGRIDBOX)
|
||||
(* ;
|
||||
"Low level compatibility and extensions")
|
||||
"Low level compatibility and extensions")
|
||||
(FNS INSIDE?)
|
||||
[COMS (* ; "Mouse selection code")
|
||||
(FNS MOUSESTATE-EXPR MOUSESTATE-NAME)
|
||||
@@ -29,8 +29,7 @@ Copyright (c) 1982, 1983, 1984, 1985, 1986, 1987, 1900, 1988, 1989, 1990, 1992,
|
||||
(* ; "High Level Display utilities")
|
||||
(FNS DECODEBUTTONS)
|
||||
(FNS PTDIFFERENCE PTPLUS)
|
||||
(COMS (* ;
|
||||
"User interaction for regions, etc")
|
||||
(COMS (* ; "User interaction for regions, etc")
|
||||
(FNS GETPOSITION GETBOXPOSITION DSPYSCREENTOWINDOW DSPXSCREENTOWINDOW GETREGION
|
||||
\GETREGION.PACKPTS \GETREGION.CHECKBASEPT \GETREGION.CHECKOPPT
|
||||
\GETREGIONTRACKWITHBOX \UPDATEXYANDBOX GETBOXREGION \TRACKWITHBOX MOVEBOX
|
||||
@@ -323,33 +322,33 @@ Copyright (c) 1982, 1983, 1984, 1985, 1986, 1987, 1900, 1988, 1989, 1990, 1992,
|
||||
(HELP KEYNAME " is not a recognized key name."])
|
||||
)
|
||||
|
||||
(PUTPROPS MOUSESTATE ARGNAMES (BUTTONFORM))
|
||||
(PUTPROPS MOUSESTATE ARGNAMES (BUTTONFORM))
|
||||
|
||||
(PUTPROPS LASTMOUSESTATE ARGNAMES (BUTTONFORM))
|
||||
(PUTPROPS LASTMOUSESTATE ARGNAMES (BUTTONFORM))
|
||||
|
||||
(PUTPROPS UNTILMOUSESTATE ARGNAMES (BUTTONFORM INTERVAL))
|
||||
(PUTPROPS UNTILMOUSESTATE ARGNAMES (BUTTONFORM INTERVAL))
|
||||
|
||||
(PUTPROPS KEYSETSTATE ARGNAMES (BUTTONFORM))
|
||||
(PUTPROPS KEYSETSTATE ARGNAMES (BUTTONFORM))
|
||||
|
||||
(PUTPROPS LASTKEYSETSTATE ARGNAMES (BUTTONFORM))
|
||||
(PUTPROPS LASTKEYSETSTATE ARGNAMES (BUTTONFORM))
|
||||
(* "FOLLOWING DEFINITIONS EXPORTED")(DECLARE%: DOCOPY
|
||||
(DECLARE%: EVAL@COMPILE
|
||||
|
||||
[PUTPROPS MOUSESTATE MACRO (ARGS (LIST 'PROGN '(GETMOUSESTATE)
|
||||
(PUTPROPS MOUSESTATE MACRO (ARGS (LIST 'PROGN '(GETMOUSESTATE)
|
||||
(MOUSESTATE-EXPR (CAR ARGS)
|
||||
T]
|
||||
T))))
|
||||
|
||||
(PUTPROPS LASTMOUSESTATE MACRO (ARGS (MOUSESTATE-EXPR (CAR ARGS)
|
||||
(PUTPROPS LASTMOUSESTATE MACRO (ARGS (MOUSESTATE-EXPR (CAR ARGS)
|
||||
T)))
|
||||
|
||||
[PUTPROPS UNTILMOUSESTATE MACRO (ARGS (COND
|
||||
(PUTPROPS UNTILMOUSESTATE MACRO [ARGS (COND
|
||||
[(AND (CDR ARGS)
|
||||
(CADR ARGS)
|
||||
(NEQ (CADR ARGS)
|
||||
T))
|
||||
|
||||
(* time argument is given and is not T or NIL;
|
||||
compile in time keeping loop.)
|
||||
compile in time keeping loop.)
|
||||
|
||||
(LIST 'PROG [LIST (LIST 'TIMEOUT
|
||||
(LIST 'IPLUS '(CLOCK 0)
|
||||
@@ -374,20 +373,20 @@ Copyright (c) 1982, 1983, 1984, 1985, 1986, 1987, 1900, 1988, 1989, 1990, 1992,
|
||||
T))
|
||||
'(RETURN T]
|
||||
'(\BACKGROUND)
|
||||
'(GO LP]
|
||||
'(GO LP])
|
||||
|
||||
[PUTPROPS KEYSETSTATE MACRO (ARGS (LIST 'PROGN '(GETMOUSESTATE)
|
||||
(MOUSESTATE-EXPR (CAR ARGS]
|
||||
(PUTPROPS KEYSETSTATE MACRO [ARGS (LIST 'PROGN '(GETMOUSESTATE)
|
||||
(MOUSESTATE-EXPR (CAR ARGS])
|
||||
|
||||
[PUTPROPS LASTKEYSETSTATE MACRO (ARGS (MOUSESTATE-EXPR (CAR ARGS]
|
||||
(PUTPROPS LASTKEYSETSTATE MACRO (ARGS (MOUSESTATE-EXPR (CAR ARGS))))
|
||||
)
|
||||
)
|
||||
(DECLARE%: DONTCOPY
|
||||
(DECLARE%: EVAL@COMPILE
|
||||
|
||||
[PUTPROPS WITHIN MACRO ((A B C)
|
||||
(PUTPROPS WITHIN MACRO [(A B C)
|
||||
(AND (IGEQ A B)
|
||||
(ILESSP A (IPLUS B C]
|
||||
(ILESSP A (IPLUS B C])
|
||||
)
|
||||
)
|
||||
|
||||
@@ -1373,11 +1372,11 @@ Copyright (c) 1982, 1983, 1984, 1985, 1986, 1987, 1900, 1988, 1989, 1990, 1992,
|
||||
)
|
||||
(* "FOLLOWING DEFINITIONS EXPORTED")(DECLARE%: EVAL@COMPILE
|
||||
|
||||
[PUTPROPS IABS MACRO (OPENLAMBDA (A)
|
||||
(COND
|
||||
((IGEQ A 0)
|
||||
A)
|
||||
(T (IMINUS A]
|
||||
(PUTPROPS IABS MACRO [OPENLAMBDA (A)
|
||||
(COND
|
||||
((IGEQ A 0)
|
||||
A)
|
||||
(T (IMINUS A])
|
||||
)
|
||||
|
||||
(* "END EXPORTED DEFINITIONS")
|
||||
@@ -1512,23 +1511,22 @@ Copyright (c) 1982, 1983, 1984, 1985, 1986, 1987, 1900, 1988, 1989, 1990, 1992,
|
||||
(DEFINEQ
|
||||
|
||||
(EDITBM
|
||||
[LAMBDA (BMSPEC) (* ; "Edited 31-Aug-87 12:28 by FS")
|
||||
[LAMBDA (BMSPEC) (* ; "Edited 2-Aug-2025 10:14 by rmk")
|
||||
(* ; "Edited 31-Aug-87 12:28 by FS")
|
||||
|
||||
(* ;;; "A simple bitmap editor.")
|
||||
|
||||
(* ;; "The edit part of the display is from 0 to MAXGRIDWIDTH in width and from 0 to MAXGRIDHEIGHT in height. The commands and display area for the bitmap being edited are above the edit region.")
|
||||
|
||||
(* ;; "The edit part of the display is from 0 to MAXGRIDWIDTH in width and from 0 to MAXGRIDHEIGHT in height. The commands and display area for the bitmap being edited are above the edit region.")
|
||||
|
||||
(DECLARE (GLOBALVARS \CURSORDESTWIDTH \CURSORDESTHEIGHT))
|
||||
(PROG (BMW BMWINTERIOR BMWWIDTH BMWHEIGHT WIDTH HEIGHT BM CR ORIGBM GRIDSQUARE BPP ORIGBPP
|
||||
ORIGWIDTH) (* ;
|
||||
"set ORIGBM to the input bitmap if any and BM to a copy of it for editting.")
|
||||
|
||||
[COND
|
||||
((OR (EQ BMSPEC CursorBitMap)
|
||||
(AND (EQ BMSPEC 'CursorBitMap)
|
||||
(SETQ BMSPEC CursorBitMap))) (* ;
|
||||
"editing cursor, save old value and make changes to the original.")
|
||||
|
||||
(SETQ ORIGBM (BITMAPCOPY CursorBitMap))
|
||||
(SETQ BM CursorBitMap))
|
||||
[(BITMAPP BMSPEC)
|
||||
@@ -1537,34 +1535,30 @@ Copyright (c) 1982, 1983, 1984, 1985, 1986, 1987, 1900, 1988, 1989, 1990, 1992,
|
||||
(COND
|
||||
([BITMAPP (SETQ ORIGBM (EVALV BMSPEC 'EDITBM]
|
||||
(* ; "use value.")
|
||||
|
||||
(SETQ BM (BITMAPCOPY ORIGBM)))
|
||||
(T (SETQ ORIGBM NIL)
|
||||
(SETQ BM (\READBMDIMENSIONS]
|
||||
((REGIONP BMSPEC) (* ;
|
||||
"if BMSPEC is a region, treat it as a region of the screen.")
|
||||
|
||||
(SETQ BM (BITMAPCREATE (fetch (REGION WIDTH) of BMSPEC)
|
||||
(fetch (REGION HEIGHT) of BMSPEC)
|
||||
(BITSPERPIXEL \CURSORDESTINATION)))
|
||||
(* ;
|
||||
"note that bm has initial bits in it.")
|
||||
|
||||
(SETQ ORIGBM BMSPEC)
|
||||
(BITBLT \CURSORDESTINATION (fetch (REGION LEFT) of BMSPEC)
|
||||
(fetch (REGION BOTTOM) of BMSPEC)
|
||||
BM 0 0 NIL NIL 'INPUT 'REPLACE))
|
||||
((WINDOWP BMSPEC)
|
||||
(SETQ ORIGBM BMSPEC)
|
||||
|
||||
(* ;;
|
||||
"FS: Seems too big below, why not ClipRegion's Width & Height? That's all that's used...")
|
||||
|
||||
(* ;;
|
||||
"FS: Seems too big below, why not ClipRegion's Width & Height? That's all that's used...")
|
||||
|
||||
(SETQ BM (BITMAPCREATE (WINDOWPROP BMSPEC 'WIDTH)
|
||||
(WINDOWPROP BMSPEC 'HEIGHT)
|
||||
(BITSPERPIXEL BMSPEC))) (* ;
|
||||
"open the window and bring it to the top.")
|
||||
|
||||
(TOTOPW BMSPEC)
|
||||
(SETQ CR (DSPCLIPPINGREGION NIL BMSPEC))
|
||||
(BITBLT BMSPEC (fetch (REGION LEFT) of CR)
|
||||
@@ -1572,7 +1566,6 @@ Copyright (c) 1982, 1983, 1984, 1985, 1986, 1987, 1900, 1988, 1989, 1990, 1992,
|
||||
BM 0 0 (fetch (REGION WIDTH) of CR)
|
||||
(fetch (REGION HEIGHT) of CR)))
|
||||
(T (* ; "otherwise create a bitmap")
|
||||
|
||||
(SETQ BM (\READBMDIMENSIONS]
|
||||
(if (OR (EQ (BITMAPHEIGHT BM)
|
||||
0)
|
||||
@@ -1583,8 +1576,8 @@ Copyright (c) 1982, 1983, 1984, 1985, 1986, 1987, 1900, 1988, 1989, 1990, 1992,
|
||||
(SETQ ORIGBPP (fetch (BITMAP BITMAPBITSPERPIXEL) of BM))
|
||||
[COND
|
||||
((NOT (EQ BPP ORIGBPP))
|
||||
|
||||
(* ;; "save the actual number of bits per pixel and set it to BPP in the bitmap being edited so that it can be BITBLT ed on the screen.")
|
||||
|
||||
(* ;; "save the actual number of bits per pixel and set it to BPP in the bitmap being edited so that it can be BITBLT ed on the screen.")
|
||||
|
||||
(SETQ ORIGWIDTH (fetch (BITMAP BITMAPWIDTH) of BM))
|
||||
(replace (BITMAP BITMAPBITSPERPIXEL) of BM with BPP)
|
||||
@@ -1593,9 +1586,9 @@ Copyright (c) 1982, 1983, 1984, 1985, 1986, 1987, 1900, 1988, 1989, 1990, 1992,
|
||||
(replace (BITMAP BITMAPWIDTH) of BM with WIDTH))
|
||||
(T (SETQ WIDTH (fetch (BITMAP BITMAPWIDTH) of BM]
|
||||
(SETQ HEIGHT (fetch (BITMAP BITMAPHEIGHT) of BM))
|
||||
|
||||
(* ;;
|
||||
"Calculate a default window size. Start by calculating the grid size from the bitmap size.")
|
||||
|
||||
(* ;;
|
||||
"Calculate a default window size. Start by calculating the grid size from the bitmap size.")
|
||||
|
||||
(SETQ GRIDSQUARE (IMAX (IMIN (IQUOTIENT (IDIFFERENCE (IQUOTIENT (ITIMES \CURSORDESTWIDTH 2)
|
||||
3)
|
||||
@@ -1634,17 +1627,15 @@ Copyright (c) 1982, 1983, 1984, 1985, 1986, 1987, 1900, 1988, 1989, 1990, 1992,
|
||||
(WINDOWPROP BMW 'ORIGINALBITMAP ORIGBM)
|
||||
(WINDOWPROP BMW 'FINISHEDFLG NIL)
|
||||
(WINDOWPROP BMW 'COLOR (MAXIMUMCOLOR BPP))
|
||||
(WINDOWPROP BMW 'GRIDON T) (* ;
|
||||
(WINDOWPROP BMW 'GRIDON T)
|
||||
(MODERNWINDOW BMW) (* ;
|
||||
"call reshapefn to initialize the display and values")
|
||||
|
||||
(EDITBMRESHAPEFN BMW NIL NIL NIL (NOT ORIGBM)) (* ;
|
||||
"start a mouse process in case this process is the mouse process.")
|
||||
|
||||
(SPAWN.MOUSE)
|
||||
(while (NOT (WINDOWPROP BMW 'FINISHEDFLG)) do (DISMISS 500))
|
||||
(* ;
|
||||
"remove the closefn before closing the window.")
|
||||
|
||||
(WINDOWPROP BMW 'CLOSEFN NIL)
|
||||
(CLOSEW BMW)
|
||||
(COND
|
||||
@@ -1654,14 +1645,11 @@ Copyright (c) 1982, 1983, 1984, 1985, 1986, 1987, 1900, 1988, 1989, 1990, 1992,
|
||||
(RETURN (COND
|
||||
((EQ T (WINDOWPROP BMW 'FINISHEDFLG)) (* ;
|
||||
"editor exited via ok, stuff contents into original bitmap.")
|
||||
|
||||
(COND
|
||||
((EQ BMSPEC CursorBitMap) (* ;
|
||||
"editting happened in original, leave it alone.")
|
||||
|
||||
CursorBitMap)
|
||||
((REGIONP ORIGBM) (* ; "put it back into the screen.")
|
||||
|
||||
(BITBLT BM 0 0 \CURSORDESTINATION (fetch (REGION LEFT) of ORIGBM)
|
||||
(fetch (REGION BOTTOM) of ORIGBM)
|
||||
(fetch (REGION WIDTH) of ORIGBM)
|
||||
@@ -1670,7 +1658,6 @@ Copyright (c) 1982, 1983, 1984, 1985, 1986, 1987, 1900, 1988, 1989, 1990, 1992,
|
||||
'REPLACE)
|
||||
BM)
|
||||
((WINDOWP ORIGBM) (* ; "put it back into the window")
|
||||
|
||||
(BITBLT BM 0 0 ORIGBM (fetch (REGION LEFT) of CR)
|
||||
(fetch (REGION BOTTOM) of CR)
|
||||
(fetch (REGION WIDTH) of CR)
|
||||
@@ -1683,14 +1670,12 @@ Copyright (c) 1982, 1983, 1984, 1985, 1986, 1987, 1900, 1988, 1989, 1990, 1992,
|
||||
((AND BMSPEC (LITATOM BMSPEC))
|
||||
(* ;
|
||||
"if spec was an atom without a bm value, set it. in the environment above EDITBM.")
|
||||
|
||||
(MARKASCHANGED BMSPEC 'VARS)
|
||||
(STKEVAL 'EDITBM (LIST 'SETQQ BMSPEC BM]
|
||||
ORIGBM)
|
||||
(T BM)))
|
||||
(T (* ;
|
||||
"error exit, if cursor return it to original value.")
|
||||
|
||||
(COND
|
||||
((EQ BMSPEC CursorBitMap)
|
||||
(BITBLT ORIGBM NIL NIL CursorBitMap)))
|
||||
@@ -2963,15 +2948,15 @@ Copyright (c) 1982, 1983, 1984, 1985, 1986, 1987, 1900, 1988, 1989, 1990, 1992,
|
||||
|
||||
(DECLARE%: EVAL@COMPILE
|
||||
|
||||
[PUTPROPS BITMASK MACRO ((X)
|
||||
(LLSH 1 (IDIFFERENCE 15 X]
|
||||
(PUTPROPS BITMASK MACRO ((X)
|
||||
(LLSH 1 (IDIFFERENCE 15 X))))
|
||||
|
||||
[PUTPROPS UPDATE/BM/DISPLAY MACRO ((BM W)
|
||||
(PUTPROPS UPDATE/BM/DISPLAY MACRO ((BM W)
|
||||
(BITBLT BM (WINDOWPROP W 'DXOFFSET)
|
||||
(WINDOWPROP W 'DYOFFSET)
|
||||
W 0 (WINDOWPROP W 'BMDISPLAYBOTTOM)
|
||||
(WINDOWPROP W 'BMDISPLAYWIDTH)
|
||||
1000 NIL 'REPLACE]
|
||||
1000 NIL 'REPLACE)))
|
||||
)
|
||||
)
|
||||
(DECLARE%: DONTEVAL@LOAD DOCOPY
|
||||
@@ -3437,45 +3422,40 @@ Copyright (c) 1982, 1983, 1984, 1985, 1986, 1987, 1900, 1988, 1989, 1990, 1992,
|
||||
PBTDISJOINT _ T (* ; "the bitmaps are separate")
|
||||
PBTDEST _ (ffetch (BITMAP BITMAPBASE) of DESTINATION)
|
||||
(* ;
|
||||
"set the destination (held constant)")
|
||||
"set the destination (held constant)")
|
||||
PBTSOURCE _ (ffetch (BITMAP BITMAPBASE) of SOURCE)
|
||||
(* ;
|
||||
"set the source (incremented by 1 scanline per iteration)")
|
||||
PBTDESTBPL _ (UNFOLD (ffetch (BITMAP BITMAPRASTERWIDTH) of
|
||||
DESTINATION)
|
||||
"set the source (incremented by 1 scanline per iteration)")
|
||||
PBTDESTBPL _ (UNFOLD (ffetch (BITMAP BITMAPRASTERWIDTH) of DESTINATION)
|
||||
BITSPERWORD)(* ;
|
||||
"the destination is this many bits between scanlines")
|
||||
"the destination is this many bits between scanlines")
|
||||
PBTSOURCEBPL _ 1 (* ;
|
||||
"move 1 bit of each source scanline per 1 scanline of the destination")
|
||||
"move 1 bit of each source scanline per 1 scanline of the destination")
|
||||
PBTSOURCEBIT _ 0 (* ;
|
||||
"start at the first bit of each source scanline (held constant)")
|
||||
"start at the first bit of each source scanline (held constant)")
|
||||
PBTDESTBIT _ (BITMAPWIDTH DESTINATION)
|
||||
(* ;
|
||||
"start putting data into the destination on the right edge (pre-decremented) ")
|
||||
"start putting data into the destination on the right edge (pre-decremented) ")
|
||||
PBTFLAGS _ 0 (* ;
|
||||
"replace mode (paint might be faster)")
|
||||
"replace mode (paint might be faster)")
|
||||
PBTHEIGHT _ (BITMAPHEIGHT DESTINATION)
|
||||
(* ; "how high the destination is")
|
||||
PBTWIDTH _ 1 (* ;
|
||||
"how wide the destination stripe is")
|
||||
))
|
||||
"how wide the destination stripe is")))
|
||||
(SOURCE-WORD-WIDTH (ffetch (BITMAP BITMAPRASTERWIDTH) of SOURCE)))
|
||||
(for I from 1 to SOURCE-HEIGHT do (add (ffetch (PILOTBBT PBTDESTBIT)
|
||||
of ROTATE-BBT)
|
||||
-1)
|
||||
(\PILOTBITBLT ROTATE-BBT 0)
|
||||
(for I from 1 to SOURCE-HEIGHT do (add (ffetch (PILOTBBT PBTDESTBIT) of ROTATE-BBT)
|
||||
-1)
|
||||
(\PILOTBITBLT ROTATE-BBT 0)
|
||||
|
||||
(* ;; "the line below is slower than need be, but works when the source crosses a segment. A faster way (which breaks on a segment cross) is to say")
|
||||
|
||||
(* ;;
|
||||
" (|add| (|ffetch| (PILOTBBT PBTSOURCELO) |of| ROTATE-BBT) SOURCE-WORD-WIDTH)")
|
||||
(* ;;
|
||||
" (|add| (|ffetch| (PILOTBBT PBTSOURCELO) |of| ROTATE-BBT) SOURCE-WORD-WIDTH)")
|
||||
|
||||
(FREPLACE (PILOTBBT PBTSOURCE)
|
||||
OF ROTATE-BBT
|
||||
WITH (\ADDBASE (FFETCH
|
||||
(PILOTBBT PBTSOURCE)
|
||||
OF ROTATE-BBT)
|
||||
SOURCE-WORD-WIDTH)))
|
||||
(FREPLACE (PILOTBBT PBTSOURCE) OF ROTATE-BBT
|
||||
WITH (\ADDBASE (FFETCH (PILOTBBT PBTSOURCE)
|
||||
OF ROTATE-BBT)
|
||||
SOURCE-WORD-WIDTH)))
|
||||
DESTINATION))
|
||||
|
||||
(CL:DEFUN ROTATE-BITMAP-LEFT (SOURCE)
|
||||
@@ -3495,81 +3475,72 @@ Copyright (c) 1982, 1983, 1984, 1985, 1986, 1987, 1900, 1988, 1989, 1990, 1992,
|
||||
PBTDISJOINT _ T (* ; "the bitmaps are separate")
|
||||
PBTDEST _ (FFETCH (BITMAP BITMAPBASE) OF DESTINATION)
|
||||
(* ;
|
||||
"set the destination (held constant)")
|
||||
"set the destination (held constant)")
|
||||
PBTSOURCE _ (FFETCH (BITMAP BITMAPBASE) OF SOURCE)
|
||||
(* ; "set the source")
|
||||
PBTDESTBPL _ 1 (* ;
|
||||
"the destination is this many bits between scanlines")
|
||||
PBTSOURCEBPL _ (UNFOLD (FFETCH (BITMAP BITMAPRASTERWIDTH)
|
||||
OF SOURCE)
|
||||
"the destination is this many bits between scanlines")
|
||||
PBTSOURCEBPL _ (UNFOLD (FFETCH (BITMAP BITMAPRASTERWIDTH) OF SOURCE)
|
||||
BITSPERWORD)
|
||||
(* ; "move a scanline at a time.")
|
||||
PBTSOURCEBIT _ (BITMAPWIDTH SOURCE)
|
||||
(* ;
|
||||
"start getting data at the right edge of the source")
|
||||
"start getting data at the right edge of the source")
|
||||
PBTDESTBIT _ 0 (* ;
|
||||
"start putting data into the destination on the left edge ")
|
||||
"start putting data into the destination on the left edge ")
|
||||
PBTFLAGS _ 0 (* ;
|
||||
"replace mode (paint might be faster)")
|
||||
"replace mode (paint might be faster)")
|
||||
PBTHEIGHT _ (BITMAPHEIGHT SOURCE)
|
||||
(* ; "how high the stripe is")
|
||||
PBTWIDTH _ 1 (* ;
|
||||
"how wide the destination stripe is")
|
||||
))
|
||||
"how wide the destination stripe is")))
|
||||
(DEST-WORD-WIDTH (FFETCH (BITMAP BITMAPRASTERWIDTH) OF DESTINATION)))
|
||||
(FOR I FROM 1 TO SOURCE-WIDTH DO (add (FFETCH (PILOTBBT PBTSOURCEBIT
|
||||
) OF
|
||||
ROTATE-BBT
|
||||
)
|
||||
-1)
|
||||
(\PILOTBITBLT ROTATE-BBT 0)
|
||||
(FOR I FROM 1 TO SOURCE-WIDTH DO (add (FFETCH (PILOTBBT PBTSOURCEBIT) OF ROTATE-BBT)
|
||||
-1)
|
||||
(\PILOTBITBLT ROTATE-BBT 0)
|
||||
|
||||
(* ;; "the line below is slower than need be, but works when the source crosses a segment. A faster way (which breaks on a segment cross) is to say")
|
||||
|
||||
(* ;;
|
||||
" (|add| (|ffetch| (PILOTBBT PBTSOURCELO) |of| ROTATE-BBT) SOURCE-WORD-WIDTH)")
|
||||
(* ;;
|
||||
" (|add| (|ffetch| (PILOTBBT PBTSOURCELO) |of| ROTATE-BBT) SOURCE-WORD-WIDTH)")
|
||||
|
||||
(FREPLACE (PILOTBBT PBTDEST)
|
||||
OF ROTATE-BBT
|
||||
WITH (\ADDBASE (FFETCH
|
||||
(PILOTBBT PBTDEST)
|
||||
OF ROTATE-BBT)
|
||||
DEST-WORD-WIDTH)))
|
||||
(FREPLACE (PILOTBBT PBTDEST) OF ROTATE-BBT
|
||||
WITH (\ADDBASE (FFETCH (PILOTBBT PBTDEST) OF ROTATE-BBT)
|
||||
DEST-WORD-WIDTH)))
|
||||
DESTINATION))
|
||||
|
||||
(PUTPROPS HLDISPLAY FILETYPE CL:COMPILE-FILE)
|
||||
(PUTPROPS HLDISPLAY FILETYPE CL:COMPILE-FILE)
|
||||
|
||||
(READVARS-FROM-STRINGS '(\4BITEXPANSIONTABLE)
|
||||
"({Y16 SMALLPOSP 0 0 15 240 255 3840 3855 4080 4095 61440 61455 61680 61695 65280 65295 65520 65535 })
|
||||
")
|
||||
(PUTPROPS HLDISPLAY COPYRIGHT ("Venue & Xerox Corporation" 1982 1983 1984 1985 1986 1987 1900 1988
|
||||
1989 1990 1992 1993 1994))
|
||||
(DECLARE%: DONTCOPY
|
||||
(FILEMAP (NIL (5008 12171 (GRID 5018 . 9289) (GRIDXCOORD 9291 . 9796) (GRIDYCOORD 9798 . 10307) (
|
||||
LEFTOFGRIDCOORD 10309 . 10746) (BOTTOMOFGRIDCOORD 10748 . 11009) (SHADEGRIDBOX 11011 . 12169)) (12227
|
||||
12635 (INSIDE? 12237 . 12633)) (12673 17069 (MOUSESTATE-EXPR 12683 . 16338) (MOUSESTATE-NAME 16340 .
|
||||
17067)) (20480 21465 (DECODEBUTTONS 20490 . 21463)) (21466 22478 (PTDIFFERENCE 21476 . 21985) (PTPLUS
|
||||
21987 . 22476)) (22529 50432 (GETPOSITION 22539 . 22847) (GETBOXPOSITION 22849 . 23532) (
|
||||
DSPYSCREENTOWINDOW 23534 . 24018) (DSPXSCREENTOWINDOW 24020 . 24504) (GETREGION 24506 . 25055) (
|
||||
\GETREGION.PACKPTS 25057 . 25625) (\GETREGION.CHECKBASEPT 25627 . 27570) (\GETREGION.CHECKOPPT 27572
|
||||
. 30382) (\GETREGIONTRACKWITHBOX 30384 . 36915) (\UPDATEXYANDBOX 36917 . 39296) (GETBOXREGION 39298
|
||||
. 39772) (\TRACKWITHBOX 39774 . 44912) (MOVEBOX 44914 . 45544) (DRAWGRAYBOX 45546 . 46068) (BLTHLINE
|
||||
46070 . 46320) (BLTVLINE 46322 . 46561) (SETCORNER 46563 . 47829) (GETSCREENPOSITION 47831 . 48444) (
|
||||
GETBOXSCREENPOSITION 48446 . 49057) (GETSCREENREGION 49059 . 49715) (GETBOXSCREENREGION 49717 . 50430)
|
||||
) (50518 67334 (\MEDW.GETSCREENPOSITION 50528 . 52321) (\MEDW.GETBOXSCREENPOSITION 52323 . 55877) (
|
||||
\MEDW.GETSCREENREGION 55879 . 67332)) (67335 75073 (GETGRIDBOXREGION 67345 . 74999) (\RANGELIMIT 75001
|
||||
. 75071)) (75074 78124 (MOUSECONFIRM 75084 . 78122)) (78265 79634 (NEAREST/PT/ON/GRID 78275 . 78870)
|
||||
(PTON10GRID 78872 . 79197) (NEAREST/MULTIPLE 79199 . 79632)) (81689 85591 (\SW2BM 81699 . 84397) (
|
||||
COMPOSEREGS 84399 . 84953) (TRANSLATEREG 84955 . 85589)) (85633 176284 (EDITBM 85643 . 95768) (
|
||||
EDITBMSCROLLFN 95770 . 110923) (EDITBMCLOSEFN 110925 . 111542) (TILEAREA 111544 . 111935) (
|
||||
EDITBMBUTTONFN 111937 . 136764) (\EDITBM/PUTUP/DISPLAY 136766 . 137668) (\EDITBMHOWMUCH 137670 .
|
||||
138656) (EDITBMRESHAPEFN 138658 . 147344) (EDITBMREPAINTFN 147346 . 148665) (UPDATE/SHADE/DISPLAY
|
||||
148667 . 149114) (UPDATE/BM/DISPLAY/SELECTED/REGION 149116 . 150230) (SHOWBUTTON 150232 . 150790) (
|
||||
RESETGRID.NEW 150792 . 154141) (RESETGRID 154143 . 154967) (\READBMDIMENSIONS 154969 . 156006) (
|
||||
EDITSHADE 156008 . 164734) (\BITMAPFROMTEXTURE 164736 . 165434) (EDITSHADEREPAINTFN 165436 . 167210) (
|
||||
GRAYBOXAREA 167212 . 167895) (\SHADEBITS 167897 . 170862) (READHOTSPOT 170864 . 174729) (WBOX 174731
|
||||
. 175455) (\CLEARBM 175457 . 175656) (EDITBMTEXTURE 175658 . 176282)) (177608 185315 (SCALEBM 177618
|
||||
. 179684) (BLTPATTERN 179686 . 182204) (BLTPATTERN.REPLACEDISPLAY 182206 . 184295) (
|
||||
BLTPATTERN.GENERIC 184297 . 185313)) (185316 197135 (EXPANDBITMAP 185326 . 187850) (EXPANDBM 187852 .
|
||||
194407) (SHRINKBITMAP 194409 . 195753) (\FAST4BIT 195755 . 197133)))))
|
||||
(FILEMAP (NIL (4729 11892 (GRID 4739 . 9010) (GRIDXCOORD 9012 . 9517) (GRIDYCOORD 9519 . 10028) (
|
||||
LEFTOFGRIDCOORD 10030 . 10467) (BOTTOMOFGRIDCOORD 10469 . 10730) (SHADEGRIDBOX 10732 . 11890)) (11948
|
||||
12356 (INSIDE? 11958 . 12354)) (12394 16790 (MOUSESTATE-EXPR 12404 . 16059) (MOUSESTATE-NAME 16061 .
|
||||
16788)) (20280 21265 (DECODEBUTTONS 20290 . 21263)) (21266 22278 (PTDIFFERENCE 21276 . 21785) (PTPLUS
|
||||
21787 . 22276)) (22329 50232 (GETPOSITION 22339 . 22647) (GETBOXPOSITION 22649 . 23332) (
|
||||
DSPYSCREENTOWINDOW 23334 . 23818) (DSPXSCREENTOWINDOW 23820 . 24304) (GETREGION 24306 . 24855) (
|
||||
\GETREGION.PACKPTS 24857 . 25425) (\GETREGION.CHECKBASEPT 25427 . 27370) (\GETREGION.CHECKOPPT 27372
|
||||
. 30182) (\GETREGIONTRACKWITHBOX 30184 . 36715) (\UPDATEXYANDBOX 36717 . 39096) (GETBOXREGION 39098
|
||||
. 39572) (\TRACKWITHBOX 39574 . 44712) (MOVEBOX 44714 . 45344) (DRAWGRAYBOX 45346 . 45868) (BLTHLINE
|
||||
45870 . 46120) (BLTVLINE 46122 . 46361) (SETCORNER 46363 . 47629) (GETSCREENPOSITION 47631 . 48244) (
|
||||
GETBOXSCREENPOSITION 48246 . 48857) (GETSCREENREGION 48859 . 49515) (GETBOXSCREENREGION 49517 . 50230)
|
||||
) (50318 67134 (\MEDW.GETSCREENPOSITION 50328 . 52121) (\MEDW.GETBOXSCREENPOSITION 52123 . 55677) (
|
||||
\MEDW.GETSCREENREGION 55679 . 67132)) (67135 74873 (GETGRIDBOXREGION 67145 . 74799) (\RANGELIMIT 74801
|
||||
. 74871)) (74874 77924 (MOUSECONFIRM 74884 . 77922)) (78065 79434 (NEAREST/PT/ON/GRID 78075 . 78670)
|
||||
(PTON10GRID 78672 . 78997) (NEAREST/MULTIPLE 78999 . 79432)) (81478 85380 (\SW2BM 81488 . 84186) (
|
||||
COMPOSEREGS 84188 . 84742) (TRANSLATEREG 84744 . 85378)) (85422 176157 (EDITBM 85432 . 95641) (
|
||||
EDITBMSCROLLFN 95643 . 110796) (EDITBMCLOSEFN 110798 . 111415) (TILEAREA 111417 . 111808) (
|
||||
EDITBMBUTTONFN 111810 . 136637) (\EDITBM/PUTUP/DISPLAY 136639 . 137541) (\EDITBMHOWMUCH 137543 .
|
||||
138529) (EDITBMRESHAPEFN 138531 . 147217) (EDITBMREPAINTFN 147219 . 148538) (UPDATE/SHADE/DISPLAY
|
||||
148540 . 148987) (UPDATE/BM/DISPLAY/SELECTED/REGION 148989 . 150103) (SHOWBUTTON 150105 . 150663) (
|
||||
RESETGRID.NEW 150665 . 154014) (RESETGRID 154016 . 154840) (\READBMDIMENSIONS 154842 . 155879) (
|
||||
EDITSHADE 155881 . 164607) (\BITMAPFROMTEXTURE 164609 . 165307) (EDITSHADEREPAINTFN 165309 . 167083) (
|
||||
GRAYBOXAREA 167085 . 167768) (\SHADEBITS 167770 . 170735) (READHOTSPOT 170737 . 174602) (WBOX 174604
|
||||
. 175328) (\CLEARBM 175330 . 175529) (EDITBMTEXTURE 175531 . 176155)) (177502 185209 (SCALEBM 177512
|
||||
. 179578) (BLTPATTERN 179580 . 182098) (BLTPATTERN.REPLACEDISPLAY 182100 . 184189) (
|
||||
BLTPATTERN.GENERIC 184191 . 185207)) (185210 197029 (EXPANDBITMAP 185220 . 187744) (EXPANDBM 187746 .
|
||||
194301) (SHRINKBITMAP 194303 . 195647) (\FAST4BIT 195649 . 197027)) (197031 201020 (ROTATE-BITMAP
|
||||
197031 . 201020)) (201022 204858 (ROTATE-BITMAP-LEFT 201022 . 204858)))))
|
||||
STOP
|
||||
|
||||
Binary file not shown.
Reference in New Issue
Block a user