(DEFINE-FILE-INFO READTABLE "INTERLISP" PACKAGE "INTERLISP" BASE 10)
(FILECREATED "25-Jan-88 14:27:06" "{FireFS:CS:Univ Rochester}<Koomen>LispUsers>Lyric>QEDIT.;9" 30305  

      changes to%:  (VARS QEDITCOMS) (RECORDS QEDITOR QENTRY) (FNS QEDIT QEDIT.CURRENT.QUEUE QEDIT.RESET QE-ACQUIRE-EDITOR QE-ADJUST-SCROLL-PARAMS QE-BUTTONEVENTFN QE-CLOSEFN QE-CMD-INSERT QE-CMD-EDIT QE-CMD-DELETE QE-CMD-LEFT QE-CMD-RIGHT QE-COLLECT-QUEUE QE-COMPUTE-LABEL QE-CREATE-EDITOR QE-CREATE-ENTRIES QE-CREATE-ENTRY QE-DISPLAY-ENTRIES QE-DISPLAY-ENTRIES-AUX QE-DISPLAY-ENTRY QE-FOCUS-SELECTION QE-INIT-EDITOR QE-MARKASCHANGED QE-MARK-VISIBLE-ENTRIES QE-MAX-INDEX-WIDTH QE-MAX-LABEL-WIDTH QE-MOUSE-IN-ENTRYP QE-MOUSED-ENTRY QE-PLACE-ENTRIES QE-PROMPTPRINT QE-REDISPLAY-ENTRY QE-RELEASE-EDITOR QE-REPAINTFN QE-RESET-DSP QE-RESHAPEFN QE-RUN-EDITOR QE-SCROLLFN QE-SELECT-ENTRY QE-SLIDE-ENTRY QE-TOGGLE-ENTRY QE-UNMARKASCHANGED QE-WHENSELECTEDFN QE-CMD-ADD)

      previous date%: "22-Jan-88 15:59:42" {ICE}<KOOMEN>LISPUSERS>KOTO>QEDIT.;9)


(* "
Copyright (c) 1987, 1988 by Johannes A. G. M. Koomen.  All rights reserved.
")

(PRETTYCOMPRINT QEDITCOMS)

(RPAQQ QEDITCOMS ((* ;; "Interface") (FNS QEDIT QEDIT.CURRENT.QUEUE QEDIT.RESET) (INITVARS (*QEDITPROPS* (QUOTE (TITLE "Queue Editor" LABELFONT (HELVETICA 8))))) (* ;; "Implementation") (COMS (DECLARE%: DONTCOPY (RECORDS QEDITOR QENTRY)) (INITRECORDS QEDITOR QENTRY)) (FNS QE-ACQUIRE-EDITOR QE-ADJUST-SCROLL-PARAMS QE-BUTTONEVENTFN QE-CLOSEFN QE-CMD-INSERT QE-CMD-EDIT QE-CMD-DELETE QE-CMD-LEFT QE-CMD-RIGHT QE-COLLECT-QUEUE QE-COMPUTE-LABEL QE-CREATE-EDITOR QE-CREATE-ENTRIES QE-CREATE-ENTRY QE-DISPLAY-ENTRIES QE-DISPLAY-ENTRIES-AUX QE-DISPLAY-ENTRY QE-FOCUS-SELECTION QE-INIT-EDITOR QE-MARKASCHANGED QE-MARK-VISIBLE-ENTRIES QE-MAX-INDEX-WIDTH QE-MAX-LABEL-WIDTH QE-MOUSE-IN-ENTRYP QE-MOUSED-ENTRY QE-PLACE-ENTRIES QE-PROMPTPRINT QE-REDISPLAY-ENTRY QE-RELEASE-EDITOR QE-REPAINTFN QE-RESET-DSP QE-RESHAPEFN QE-RUN-EDITOR QE-SCROLLFN QE-SELECT-ENTRY QE-SLIDE-ENTRY QE-TOGGLE-ENTRY QE-UNMARKASCHANGED QE-WHENSELECTEDFN) (INITVARS (*QEDITORS*)) (GLOBALVARS *QEDITORS*) (PROP (FILETYPE MAKEFILE-ENVIRONMENT) QEDIT) (DECLARE%: DONTEVAL@LOAD DOEVAL@COMPILE DONTCOPY COMPILERVARS (ADDVARS (NLAMA) (NLAML) (LAMA QE-PROMPTPRINT))))
)



(* ;; "Interface")

(DEFINEQ

(QEDIT
(LAMBDA (QUEUE PROPS) (* Koomen "11-Dec-87 14:43") (* ; "Edited 27-Nov-87 14:36 by Koomen") (* ;; "Brings up a QEditor for rearranging the elements of QUEUE.") (* ;; "PROPS is a proplist customizing this particular editing session.  The following props are currently supported:") (* ;; "   TITLE - a string indicating the window title of the QEditor") (* ;; "   CONTEXT - a Lisp object given as extra argument to the following functions") (* ;; "   LABELFN - (labelfn qelt context) returns a label for displaying qelt") (* ;; "   LABELFONT - a font spec -- defaults to (HELVETICA 8)") (* ;; "   ADDFN - (addfn context) returns a new queue element") (* ;; "   EDITFN - (editfn qelt context) returns a (possibly different) queue element ") (* ;; "   DELETEFN - (deletefn qelt context) returns T iff the element can be deleted") (* ;; "") (* ;; "Default props are taken from the freevar *QEDITPROPS*") (LET ((QEDITOR (QE-ACQUIRE-EDITOR))) (RESETLST (RESETSAVE NIL (BQUOTE (QE-RELEASE-EDITOR (\, QEDITOR)))) (QE-RUN-EDITOR (QE-INIT-EDITOR QEDITOR (MKLIST QUEUE) (APPEND PROPS *QEDITPROPS*))))))
)

(QEDIT.CURRENT.QUEUE
(LAMBDA NIL (* Koomen "11-Dec-87 16:54") (DECLARE (SPECVARS QEDITOR)) (if (AND (BOUNDP (QUOTE QEDITOR)) (type? QEDITOR QEDITOR)) then (QE-COLLECT-QUEUE QEDITOR) else (ERROR "No current QEdit in progress")))
)

(QEDIT.RESET
(LAMBDA NIL (* Koomen "11-Dec-87 14:52") (* ; "Edited 27-Nov-87 14:43 by Koomen") (if (for QEDITOR in *QEDITORS* thereis (NEQ (fetch (QEDITOR QUEUE) of QEDITOR) (QUOTE RELEASED))) then (QE-PROMPTPRINT NIL "Can't reset QEdit while edits in progress") NIL else (SETQ *QEDITORS*) T))
)
)

(RPAQ? *QEDITPROPS* (QUOTE (TITLE "Queue Editor" LABELFONT (HELVETICA 8))))



(* ;; "Implementation")

(DECLARE%: DONTCOPY 
(DECLARE%: EVAL@COMPILE

(DATATYPE QEDITOR (QUEUE TITLE ENTRIES ENTRYCNT SELECTION LABELFONT LABELFN INSERTFN EDITFN DELETEFN XOFFSET YOFFSET WINDOW DSP PROMPTWINDOW MENU COMMAND USERCONTEXT CHANGES? UNDOLIST REDOLIST)
)

(DATATYPE QENTRY (ELEMENT LABEL LABELWIDTH INDEX BIGBOX LBLBOX ORDBOX INVBOX OBSBOX VISIBLE? SELECTED?)
)
)
(/DECLAREDATATYPE (QUOTE QEDITOR) (QUOTE (POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER)) (QUOTE ((QEDITOR 0 POINTER) (QEDITOR 2 POINTER) (QEDITOR 4 POINTER) (QEDITOR 6 POINTER) (QEDITOR 8 POINTER) (QEDITOR 10 POINTER) (QEDITOR 12 POINTER) (QEDITOR 14 POINTER) (QEDITOR 16 POINTER) (QEDITOR 18 POINTER) (QEDITOR 20 POINTER) (QEDITOR 22 POINTER) (QEDITOR 24 POINTER) (QEDITOR 26 POINTER) (QEDITOR 28 POINTER) (QEDITOR 30 POINTER) (QEDITOR 32 POINTER) (QEDITOR 34 POINTER) (QEDITOR 36 POINTER) (QEDITOR 38 POINTER) (QEDITOR 40 POINTER))) (QUOTE 42))
(/DECLAREDATATYPE (QUOTE QENTRY) (QUOTE (POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER)) (QUOTE ((QENTRY 0 POINTER) (QENTRY 2 POINTER) (QENTRY 4 POINTER) (QENTRY 6 POINTER) (QENTRY 8 POINTER) (QENTRY 10 POINTER) (QENTRY 12 POINTER) (QENTRY 14 POINTER) (QENTRY 16 POINTER) (QENTRY 18 POINTER) (QENTRY 20 POINTER))) (QUOTE 22))
)
(/DECLAREDATATYPE (QUOTE QEDITOR) (QUOTE (POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER)) (QUOTE ((QEDITOR 0 POINTER) (QEDITOR 2 POINTER) (QEDITOR 4 POINTER) (QEDITOR 6 POINTER) (QEDITOR 8 POINTER) (QEDITOR 10 POINTER) (QEDITOR 12 POINTER) (QEDITOR 14 POINTER) (QEDITOR 16 POINTER) (QEDITOR 18 POINTER) (QEDITOR 20 POINTER) (QEDITOR 22 POINTER) (QEDITOR 24 POINTER) (QEDITOR 26 POINTER) (QEDITOR 28 POINTER) (QEDITOR 30 POINTER) (QEDITOR 32 POINTER) (QEDITOR 34 POINTER) (QEDITOR 36 POINTER) (QEDITOR 38 POINTER) (QEDITOR 40 POINTER))) (QUOTE 42))
(/DECLAREDATATYPE (QUOTE QENTRY) (QUOTE (POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER)) (QUOTE ((QENTRY 0 POINTER) (QENTRY 2 POINTER) (QENTRY 4 POINTER) (QENTRY 6 POINTER) (QENTRY 8 POINTER) (QENTRY 10 POINTER) (QENTRY 12 POINTER) (QENTRY 14 POINTER) (QENTRY 16 POINTER) (QENTRY 18 POINTER) (QENTRY 20 POINTER))) (QUOTE 22))
(DEFINEQ

(QE-ACQUIRE-EDITOR
(LAMBDA NIL (* ; "Edited 27-Nov-87 15:09 by Koomen") (for QEDITOR in *QEDITORS* when (EQ (QUOTE RELEASED) (fetch (QEDITOR QUEUE) of QEDITOR)) do (RETURN QEDITOR) finally (SETQ QEDITOR (QE-CREATE-EDITOR)) (SETQ *QEDITORS* (NCONC1 *QEDITORS* QEDITOR)) (RETURN QEDITOR)))
)

(QE-ADJUST-SCROLL-PARAMS
(LAMBDA (QEDITOR WIDTH HEIGHT XOFFSET YOFFSET) (* ; "Edited 25-Nov-87 16:15 by Koomen") (replace (QEDITOR XOFFSET) of QEDITOR with XOFFSET) (replace (QEDITOR YOFFSET) of QEDITOR with YOFFSET) (WINDOWPROP (fetch (QEDITOR WINDOW) of QEDITOR) (QUOTE EXTENT) (CREATEREGION 0 0 WIDTH HEIGHT)))
)

(QE-BUTTONEVENTFN
(LAMBDA (WINDOW) (* ; "Edited 21-Jan-88 23:13 by Koomen") (DECLARE (GLOBALVARS LASTMOUSEBUTTONS)) (PROG ((QEDITOR (WINDOWPROP WINDOW (QUOTE QEDITOR))) (BUTTON (if (LASTMOUSESTATE (ONLY LEFT)) then (QUOTE LEFT) elseif (LASTMOUSESTATE (ONLY MIDDLE)) then (QUOTE MIDDLE)))) (TOTOPW WINDOW) (if (AND QEDITOR BUTTON) then (QE-SLIDE-ENTRY QEDITOR (QE-MOUSED-ENTRY QEDITOR) BUTTON))))
)

(QE-CLOSEFN
(LAMBDA (WINDOW) (* ; "Edited 27-Nov-87 11:42 by Koomen") (PROG ((QEDITOR (WINDOWPROP WINDOW (QUOTE QEDITOR)))) (if QEDITOR then (if (fetch (QEDITOR COMMAND) of QEDITOR) then (RETURN (QUOTE DON'T)) else (replace (QEDITOR COMMAND) of QEDITOR with (QUOTE Done))))))
)

(QE-CMD-INSERT
(LAMBDA (QEDITOR) (* Koomen "22-Jan-88 13:41") (PROG (NEWENTRY ENTRIES) (if (NULL (fetch (QEDITOR INSERTFN) of QEDITOR)) then (QE-PROMPTPRINT QEDITOR "Don't know how to insert elements") (RETURN)) (SETQ NEWENTRY (APPLY* (fetch (QEDITOR INSERTFN) of QEDITOR) (fetch (QEDITOR USERCONTEXT) of QEDITOR))) (if (NULL NEWENTRY) then (QE-PROMPTPRINT QEDITOR "Nothing to insert") (RETURN)) (SETQ NEWENTRY (QE-CREATE-ENTRY QEDITOR NEWENTRY)) (SETQ ENTRIES (fetch (QEDITOR ENTRIES) of QEDITOR)) (if (NULL ENTRIES) then (replace (QEDITOR ENTRIES) of QEDITOR with (LIST NEWENTRY)) else (for ENTRYP on ENTRIES when (fetch (QENTRY SELECTED?) of (CAR ENTRYP)) do (RPLNODE ENTRYP NEWENTRY (CONS (CAR ENTRYP) (CDR ENTRYP))) (RETURN) finally (replace (QEDITOR ENTRIES) of QEDITOR with (CONS NEWENTRY ENTRIES)))) (add (fetch (QEDITOR ENTRYCNT) of QEDITOR) 1) (QE-MARKASCHANGED QEDITOR) (QE-PLACE-ENTRIES QEDITOR) (QE-DISPLAY-ENTRIES QEDITOR) (QE-SELECT-ENTRY QEDITOR NEWENTRY)))
)

(QE-CMD-EDIT
(LAMBDA (QEDITOR) (* ; "Edited 22-Jan-88 00:15 by Koomen") (PROG (ENTRY RESULT OLDLABEL NEWLABEL) (SETQ ENTRY (fetch (QEDITOR SELECTION) of QEDITOR)) (if (NULL ENTRY) then (QE-PROMPTPRINT QEDITOR "Nothing selected") (RETURN)) (if (NULL (fetch (QEDITOR EDITFN) of QEDITOR)) then (QE-PROMPTPRINT QEDITOR "QEdit selection cannot be edited") (RETURN)) (SETQ RESULT (APPLY* (fetch (QEDITOR EDITFN) of QEDITOR) (fetch (QENTRY ELEMENT) of ENTRY) (fetch (QEDITOR USERCONTEXT) of QEDITOR))) (if RESULT then (replace (QENTRY ELEMENT) of ENTRY with RESULT) (SETQ OLDLABEL (fetch (QENTRY LABEL) of ENTRY)) (QE-COMPUTE-LABEL QEDITOR ENTRY) (SETQ NEWLABEL (fetch (QENTRY LABEL) of ENTRY)) (if (NOT (EQUAL NEWLABEL OLDLABEL)) then (QE-PLACE-ENTRIES QEDITOR) (QE-DISPLAY-ENTRIES QEDITOR)))))
)

(QE-CMD-DELETE
(LAMBDA (QEDITOR) (* ; "Edited 21-Jan-88 23:43 by Koomen") (* ;; "Delete the current selection provided there is a DELETEP function returning T") (PROG ((OLDENTRY (fetch (QEDITOR SELECTION) of QEDITOR))) (if (NULL OLDENTRY) then (QE-PROMPTPRINT QEDITOR "Nothing selected") elseif (AND (fetch (QEDITOR DELETEFN) of QEDITOR) (APPLY* (fetch (QEDITOR DELETEFN) of QEDITOR) (fetch (QENTRY ELEMENT) of OLDENTRY) (fetch (QEDITOR USERCONTEXT) of QEDITOR))) then (replace (QEDITOR ENTRIES) of QEDITOR with (DREMOVE OLDENTRY (fetch (QEDITOR ENTRIES) of QEDITOR))) (add (fetch (QEDITOR ENTRYCNT) of QEDITOR) -1) (replace (QEDITOR SELECTION) of QEDITOR with NIL) (QE-MARKASCHANGED QEDITOR) (QE-PLACE-ENTRIES QEDITOR) (QE-DISPLAY-ENTRIES QEDITOR) else (QE-PROMPTPRINT QEDITOR "QEdit selection cannot be deleted"))))
)

(QE-CMD-LEFT
(LAMBDA (QEDITOR) (* ; "Edited 21-Jan-88 23:00 by Koomen") (* ;; "Moves the current selection one place to the left, if possible.  Returns the new current selection.") (PROG ((LEFT) (RIGHT (fetch (QEDITOR SELECTION) of QEDITOR)) (ENTRIES (fetch (QEDITOR ENTRIES) of QEDITOR))) (if (NULL RIGHT) then (QE-PROMPTPRINT QEDITOR "Nothing selected") (RETURN)) (if (EQ RIGHT (CAR ENTRIES)) then (QE-PROMPTPRINT QEDITOR "Can't move selection further left") (RETURN RIGHT)) (do (SETQ LEFT (pop ENTRIES)) repeatuntil (EQ RIGHT (CAR ENTRIES))) (swap (fetch (QENTRY LABEL) of LEFT) (fetch (QENTRY LABEL) of RIGHT)) (swap (fetch (QENTRY ELEMENT) of LEFT) (fetch (QENTRY ELEMENT) of RIGHT)) (QE-MARKASCHANGED QEDITOR) (QE-REDISPLAY-ENTRY QEDITOR RIGHT) (QE-REDISPLAY-ENTRY QEDITOR LEFT) (RETURN (QE-SELECT-ENTRY QEDITOR LEFT))))
)

(QE-CMD-RIGHT
(LAMBDA (QEDITOR) (* ; "Edited 21-Jan-88 23:03 by Koomen") (PROG ((LEFT (fetch (QEDITOR SELECTION) of QEDITOR)) (RIGHT) (ENTRIES (fetch (QEDITOR ENTRIES) of QEDITOR))) (if (NULL LEFT) then (QE-PROMPTPRINT QEDITOR "Nothing selected") (RETURN)) (do (SETQ RIGHT (CADR ENTRIES)) repeatuntil (EQ LEFT (pop ENTRIES))) (if (NULL RIGHT) then (QE-PROMPTPRINT QEDITOR "Can't move selection further right") (RETURN LEFT)) (swap (fetch (QENTRY LABEL) of LEFT) (fetch (QENTRY LABEL) of RIGHT)) (swap (fetch (QENTRY ELEMENT) of LEFT) (fetch (QENTRY ELEMENT) of RIGHT)) (QE-MARKASCHANGED QEDITOR) (QE-REDISPLAY-ENTRY QEDITOR LEFT) (QE-REDISPLAY-ENTRY QEDITOR RIGHT) (RETURN (QE-SELECT-ENTRY QEDITOR RIGHT))))
)

(QE-COLLECT-QUEUE
(LAMBDA (QEDITOR) (* Koomen "25-May-87 12:05") (for ENTRY in (fetch (QEDITOR ENTRIES) of QEDITOR) collect (fetch (QENTRY ELEMENT) of ENTRY)))
)

(QE-COMPUTE-LABEL
(LAMBDA (QEDITOR ENTRY) (* ; "Edited 27-Nov-87 11:57 by Koomen") (PROG ((LABEL (OR (AND (fetch (QEDITOR LABELFN) of QEDITOR) (APPLY* (fetch (QEDITOR LABELFN) of QEDITOR) (fetch (QENTRY ELEMENT) of ENTRY) (fetch (QEDITOR USERCONTEXT) of QEDITOR))) (fetch (QENTRY ELEMENT) of ENTRY))) (LABELFONT (fetch (QEDITOR LABELFONT) of QEDITOR))) (replace (QENTRY LABEL) of ENTRY with LABEL) (replace (QENTRY LABELWIDTH) of ENTRY with (STRINGWIDTH LABEL LABELFONT)) (RETURN ENTRY)))
)

(QE-CREATE-EDITOR
(LAMBDA NIL (* Koomen "22-Jan-88 14:30") (LET* ((QEDITMENU (create MENU ITEMS ← (QUOTE (("<--" Left "Moves selected entry to the left") ("-->" Right "Moves selected entry to the right") (Insert Insert "Insert a new entry before the selected one") (Edit Edit "Edit the selected entry") (Delete Delete "Delete the selected entry") (Abort Abort "Abort Queue Editor, returning original queue") (Done Done "Exit Queue Editor, returning current queue"))) MENUFONT ← (QUOTE (MODERN 12)) CENTERFLG ← T WHENSELECTEDFN ← (FUNCTION QE-WHENSELECTEDFN))) (QEDITWINDOW (CREATEMENUEDWINDOW QEDITMENU "Queue Editor"))) (WINDOWADDPROP QEDITWINDOW (QUOTE CLOSEFN) (FUNCTION QE-CLOSEFN)) (WINDOWADDPROP QEDITWINDOW (QUOTE REPAINTFN) (FUNCTION QE-REPAINTFN)) (WINDOWADDPROP QEDITWINDOW (QUOTE RESHAPEFN) (FUNCTION QE-RESHAPEFN)) (WINDOWPROP QEDITWINDOW (QUOTE BUTTONEVENTFN) (FUNCTION QE-BUTTONEVENTFN)) (WINDOWPROP QEDITWINDOW (QUOTE SCROLLFN) (FUNCTION QE-SCROLLFN)) (WINDOWPROP QEDITWINDOW (QUOTE SCROLLEXTENTUSE) (QUOTE (LIMIT . LIMIT))) (create QEDITOR MENU ← QEDITMENU WINDOW ← QEDITWINDOW DSP ← (WINDOWPROP QEDITWINDOW (QUOTE DSP)) PROMPTWINDOW ← (GETPROMPTWINDOW QEDITWINDOW))))
)

(QE-CREATE-ENTRIES
(LAMBDA (QEDITOR) (* ; "Edited 27-Nov-87 17:15 by Koomen") (PROG ((ENTRIES (for ELEMENT in (fetch (QEDITOR QUEUE) of QEDITOR) collect (QE-CREATE-ENTRY QEDITOR ELEMENT)))) (replace (QEDITOR ENTRIES) of QEDITOR with ENTRIES) (replace (QEDITOR ENTRYCNT) of QEDITOR with (LENGTH ENTRIES)) (replace (QEDITOR SELECTION) of QEDITOR with NIL)))
)

(QE-CREATE-ENTRY
(LAMBDA (QEDITOR ELEMENT) (* Koomen "26-May-87 00:20") (QE-COMPUTE-LABEL QEDITOR (create QENTRY ELEMENT ← ELEMENT)))
)

(QE-DISPLAY-ENTRIES
(LAMBDA (QEDITOR) (* ; "Edited 21-Jan-88 23:46 by Koomen") (QE-RESET-DSP QEDITOR) (QE-DISPLAY-ENTRIES-AUX QEDITOR (fetch (QEDITOR ENTRIES) of QEDITOR) (QE-MARK-VISIBLE-ENTRIES QEDITOR)) (QE-SELECT-ENTRY QEDITOR (fetch (QEDITOR SELECTION) of QEDITOR)))
)

(QE-DISPLAY-ENTRIES-AUX
(LAMBDA (QEDITOR ENTRIES N) (* ; "Edited 25-Nov-87 16:15 by Koomen") (* ;; "Recursively display the entries (back to front) [first N, if non-NIL]") (if (AND ENTRIES (OR (NULL N) (IGREATERP N 0))) then (QE-DISPLAY-ENTRIES-AUX QEDITOR (CDR ENTRIES) (AND N (SUB1 N))) (QE-DISPLAY-ENTRY QEDITOR (CAR ENTRIES))))
)

(QE-DISPLAY-ENTRY
(LAMBDA (QEDITOR ENTRY) (* ; "Edited 21-Jan-88 21:51 by Koomen") (DECLARE (GLOBALVARS BLACKSHADE)) (if (fetch (QENTRY VISIBLE?) of ENTRY) then (LET ((DSP (fetch (QEDITOR DSP) of QEDITOR))) (with REGION (fetch (QENTRY BIGBOX) of ENTRY) (GRAYBOXAREA LEFT BOTTOM WIDTH HEIGHT 1 BLACKSHADE DSP)) (with REGION (fetch (QENTRY LBLBOX) of ENTRY) (MOVETO LEFT BOTTOM DSP)) (PRINTOUT DSP (fetch (QENTRY LABEL) of ENTRY)) (with REGION (fetch (QENTRY ORDBOX) of ENTRY) (MOVETO LEFT BOTTOM DSP)) (PRINTOUT DSP (fetch (QENTRY INDEX) of ENTRY)) (replace (QENTRY SELECTED?) of ENTRY with NIL))))
)

(QE-FOCUS-SELECTION
(LAMBDA (QEDITOR COMMAND) (* ; "Edited 22-Jan-88 00:18 by Koomen") (PROG (QENTRY QENTRYBOX QEDITWINDOW QEDITREGION) (if (AND (SETQ QENTRY (fetch (QEDITOR SELECTION) of QEDITOR)) (NOT (SUBREGIONP (SETQ QEDITREGION (DSPCLIPPINGREGION NIL (SETQ QEDITWINDOW (fetch (QEDITOR WINDOW) of QEDITOR)))) (SETQ QENTRYBOX (fetch (QENTRY BIGBOX) of QENTRY))))) then (SCROLLW QEDITWINDOW (QUOTIENT (DIFFERENCE (with REGION QEDITREGION (PLUS LEFT RIGHT)) (with REGION QENTRYBOX (PLUS LEFT RIGHT))) 2) 0) (if COMMAND then (QE-PROMPTPRINT QEDITOR "Queue Editor command `" COMMAND "' ignored")) (RETURN T))))
)

(QE-INIT-EDITOR
(LAMBDA (QEDITOR QUEUE PROPS) (* Koomen "22-Jan-88 14:29") (LET ((QEDITMENU (fetch (QEDITOR MENU) of QEDITOR)) (QEDITWINDOW (fetch (QEDITOR WINDOW) of QEDITOR))) (PUTMENUPROP QEDITMENU (QUOTE QEDITOR) QEDITOR) (WINDOWPROP QEDITWINDOW (QUOTE QEDITOR) QEDITOR) (WINDOWPROP QEDITWINDOW (QUOTE TITLE) (replace (QEDITOR TITLE) of QEDITOR with (LISTGET PROPS (QUOTE TITLE)))) (replace (QEDITOR QUEUE) of QEDITOR with (MKLIST QUEUE)) (replace (QEDITOR LABELFN) of QEDITOR with (LISTGET PROPS (QUOTE LABELFN))) (replace (QEDITOR LABELFONT) of QEDITOR with (FONTCREATE (LISTGET PROPS (QUOTE LABELFONT)))) (replace (QEDITOR INSERTFN) of QEDITOR with (OR (LISTGET PROPS (QUOTE INSERTFN)) (LISTGET PROPS (QUOTE ADDFN)))) (replace (QEDITOR EDITFN) of QEDITOR with (LISTGET PROPS (QUOTE EDITFN))) (replace (QEDITOR DELETEFN) of QEDITOR with (LISTGET PROPS (QUOTE DELETEFN))) (replace (QEDITOR USERCONTEXT) of QEDITOR with (LISTGET PROPS (QUOTE CONTEXT))) (replace (QEDITOR COMMAND) of QEDITOR with NIL) (replace (QEDITOR CHANGES?) of QEDITOR with NIL) (DSPFONT (fetch (QEDITOR LABELFONT) of QEDITOR) (fetch (QEDITOR DSP) of QEDITOR)) (CLEARW QEDITWINDOW) (CLEARW (fetch (QEDITOR PROMPTWINDOW) of QEDITOR)) QEDITOR))
)

(QE-MARKASCHANGED
(LAMBDA (QEDITOR) (* Koomen "11-Dec-87 15:04") (* ; "Edited 27-Nov-87 17:10 by Koomen") (if (NOT (fetch (QEDITOR CHANGES?) of QEDITOR)) then (replace (QEDITOR CHANGES?) of QEDITOR with T) (WINDOWPROP (fetch (QEDITOR WINDOW) of QEDITOR) (QUOTE TITLE) (CONCAT "* " (fetch (QEDITOR TITLE) of QEDITOR)))) QEDITOR)
)

(QE-MARK-VISIBLE-ENTRIES
(LAMBDA (QEDITOR) (* ; "Edited 22-Jan-88 00:19 by Koomen") (for ENTRY in (fetch (QEDITOR ENTRIES) of QEDITOR) bind (LASTINDEX ← 0) (CLIPPINGREGION ← (DSPCLIPPINGREGION NIL (fetch (QEDITOR WINDOW) of QEDITOR))) do (if (replace (QENTRY VISIBLE?) of ENTRY with (REGIONSINTERSECTP CLIPPINGREGION (fetch (QENTRY BIGBOX) of ENTRY))) then (SETQ LASTINDEX (fetch (QENTRY INDEX) of ENTRY))) finally (RETURN LASTINDEX)))
)

(QE-MAX-INDEX-WIDTH
(LAMBDA (QEDITOR) (* ; "Edited 27-Nov-87 17:05 by Koomen") (STRINGWIDTH (TIMES (fetch (QEDITOR ENTRYCNT) of QEDITOR) 10) (fetch (QEDITOR LABELFONT) of QEDITOR)))
)

(QE-MAX-LABEL-WIDTH
(LAMBDA (QEDITOR) (* Koomen "26-May-87 00:14") (for ENTRY in (fetch (QEDITOR ENTRIES) of QEDITOR) bind (W ← (STRINGWIDTH "Some Label" (fetch (QEDITOR LABELFONT) of QEDITOR))) do (SETQ W (IMAX W (fetch (QENTRY LABELWIDTH) of ENTRY))) finally (RETURN W)))
)

(QE-MOUSE-IN-ENTRYP
(LAMBDA (QEDITOR ENTRY) (* ; "Edited 21-Jan-88 22:23 by Koomen") (LET ((QWINDOW (fetch (QEDITOR WINDOW) of QEDITOR))) (INSIDEP (fetch (QENTRY BIGBOX) of ENTRY) (LASTMOUSEX QWINDOW) (LASTMOUSEY QWINDOW))))
)

(QE-MOUSED-ENTRY
(LAMBDA (QEDITOR) (* Koomen "25-May-87 12:44") (for ENTRY in (fetch (QEDITOR ENTRIES) of QEDITOR) thereis (QE-MOUSE-IN-ENTRYP QEDITOR ENTRY)))
)

(QE-PLACE-ENTRIES
(LAMBDA (QEDITOR) (* Koomen "22-Jan-88 15:59") (PROG (DSP ENTRIES FONT FONTHEIGHT LABEL-W INDEX-W BIGBOX-H YOFFSET REGION XOFFSET BIGBOX-W XLBLOFFSET YLBLOFFSET X Y LASTBOX NEXTBOX XVISIBLE YVISIBLE) (SETQ DSP (fetch (QEDITOR DSP) of QEDITOR)) (SETQ ENTRIES (fetch (QEDITOR ENTRIES) of QEDITOR)) (SETQ FONT (fetch (QEDITOR LABELFONT) of QEDITOR)) (SETQ FONTHEIGHT (FONTHEIGHT FONT)) (SETQ LABEL-W (QE-MAX-LABEL-WIDTH QEDITOR)) (SETQ INDEX-W (QE-MAX-INDEX-WIDTH QEDITOR)) (SETQ BIGBOX-H (QUOTIENT (TIMES FONTHEIGHT 7) 2)) (SETQ YOFFSET (ADD1 (QUOTIENT BIGBOX-H 2))) (SETQ BIGBOX-W (PLUS LABEL-W INDEX-W 8)) (SETQ XOFFSET (PLUS INDEX-W 8)) (SETQ REGION (DSPCLIPPINGREGION NIL DSP)) (SETQ XVISIBLE (ADD1 (QUOTIENT (DIFFERENCE (fetch (REGION WIDTH) of REGION) BIGBOX-W) XOFFSET))) (SETQ YVISIBLE (ADD1 (QUOTIENT (DIFFERENCE (fetch (REGION HEIGHT) of REGION) BIGBOX-H) YOFFSET))) (if (LESSP YVISIBLE XVISIBLE) then (LET ((NEWXOFFSET (QUOTIENT (DIFFERENCE (fetch (REGION WIDTH) of REGION) BIGBOX-W) YVISIBLE))) (add BIGBOX-W (DIFFERENCE NEWXOFFSET XOFFSET)) (SETQ XOFFSET NEWXOFFSET))) (SETQ XLBLOFFSET 3) (SETQ YLBLOFFSET (DIFFERENCE BIGBOX-H (PLUS FONTHEIGHT 2))) (SETQ X 4) (SETQ Y 4) (for ENTRY in ENTRIES as I from 1 do (replace (QENTRY INDEX) of ENTRY with I) (SETQ LASTBOX NEXTBOX) (SETQ NEXTBOX (CREATEREGION X Y BIGBOX-W BIGBOX-H)) (replace (QENTRY BIGBOX) of ENTRY with NEXTBOX) (replace (QENTRY INVBOX) of ENTRY with (CREATEREGION (ADD1 X) (ADD1 Y) (DIFFERENCE BIGBOX-W 2) (DIFFERENCE BIGBOX-H 2))) (LET ((LABEL-X (PLUS X XLBLOFFSET)) (LABEL-Y (PLUS Y YLBLOFFSET))) (replace (QENTRY LBLBOX) of ENTRY with (CREATEREGION LABEL-X LABEL-Y LABEL-W FONTHEIGHT))) (SETQ INDEX-W (STRINGWIDTH I FONT)) (LET ((INDEX-X (DIFFERENCE (PLUS X BIGBOX-W) (PLUS INDEX-W 4))) (INDEX-Y (PLUS Y 3))) (replace (QENTRY ORDBOX) of ENTRY with (CREATEREGION INDEX-X INDEX-Y INDEX-W FONTHEIGHT))) (if LASTBOX then (with REGION (INTERSECTREGIONS LASTBOX NEXTBOX) (replace (QENTRY OBSBOX) of ENTRY with (CREATEREGION (ADD1 LEFT) (ADD1 BOTTOM) WIDTH HEIGHT)))) (add X XOFFSET) (add Y YOFFSET)) (QE-ADJUST-SCROLL-PARAMS QEDITOR (PLUS X BIGBOX-W) (PLUS Y BIGBOX-H) XOFFSET YOFFSET)))
)

(QE-PROMPTPRINT
(LAMBDA PROMPTCNT (* Koomen "22-Jan-88 14:28") (if (LESSP PROMPTCNT 1) then (SHOULDNT "Missing QEditor arg") else (LET ((QEDITOR (ARG PROMPTCNT 1))) (if (type? QEDITOR QEDITOR) then (LET ((PROMPTW (fetch (QEDITOR PROMPTWINDOW) of QEDITOR))) (CLEARW PROMPTW) (for I from 2 to PROMPTCNT do (printout PROMPTW (ARG PROMPTCNT I)))) else (TERPRI PROMPTWINDOW) (for I from 2 to PROMPTCNT do (printout PROMPTWINDOW (ARG PROMPTCNT I))) (TERPRI PROMPTWINDOW)))))
)

(QE-REDISPLAY-ENTRY
(LAMBDA (QEDITOR ENTRY) (* ; "Edited 21-Jan-88 23:39 by Koomen") (* ;; "ENTRY's label has changed, so deselect if necessary and reprint label") (DECLARE (GLOBALVARS BLACKSHADE)) (if (fetch (QENTRY VISIBLE?) of ENTRY) then (QE-TOGGLE-ENTRY QEDITOR ENTRY) (PROG ((DSP (fetch (QEDITOR DSP) of QEDITOR)) (LBLBOX (fetch (QENTRY LBLBOX) of ENTRY))) (DSPFILL LBLBOX WHITESHADE (QUOTE REPLACE) DSP) (with REGION LBLBOX (MOVETO LEFT BOTTOM DSP)) (PRINTOUT DSP (fetch (QENTRY LABEL) of ENTRY)))))
)

(QE-RELEASE-EDITOR
(LAMBDA (QEDITOR) (* Koomen "22-Jan-88 14:43") (* ;; "Done editing, so squirrel it away for future use.  Break the circular links for GC purposes ") (DECLARE (GLOBALVARS *QEDITORS*)) (LET ((QEDITMENU (fetch (QEDITOR MENU) of QEDITOR)) (QEDITWINDOW (fetch (QEDITOR WINDOW) of QEDITOR)) (PROMPTW (fetch (QEDITOR PROMPTWINDOW) of QEDITOR))) (PUTMENUPROP QEDITMENU (QUOTE QEDITOR) NIL) (WINDOWPROP QEDITWINDOW (QUOTE QEDITOR) NIL) (if (OPENWP QEDITWINDOW) then (CLOSEW QEDITWINDOW)) (if (OPENWP PROMPTW) then (CLOSEW PROMPTW)) (replace (QEDITOR QUEUE) of QEDITOR with (QUOTE RELEASED))))
)

(QE-REPAINTFN
(LAMBDA (WINDOW) (* ; "Edited 21-Jan-88 22:12 by Koomen") (PROG ((QEDITOR (WINDOWPROP WINDOW (QUOTE QEDITOR)))) (if QEDITOR then (QE-DISPLAY-ENTRIES QEDITOR))))
)

(QE-RESET-DSP
(LAMBDA (QEDITOR) (* ; "Edited 21-Jan-88 22:01 by Koomen") (PROG* ((DSP (fetch (QEDITOR DSP) of QEDITOR))) (DSPRIGHTMARGIN MAX.SMALLP DSP) (DSPFILL NIL NIL NIL DSP) (with REGION (DSPCLIPPINGREGION NIL DSP) (MOVETO (PLUS LEFT 4) (DIFFERENCE TOP (PLUS (FONTHEIGHT (fetch (QEDITOR LABELFONT) of QEDITOR)) 2)) DSP)) (printout DSP (fetch (QEDITOR ENTRYCNT) of QEDITOR) " elements")))
)

(QE-RESHAPEFN
(LAMBDA (WINDOW OLDBM OLDREG) (* ; "Edited 21-Jan-88 22:07 by Koomen") (PROG ((QEDITOR (WINDOWPROP WINDOW (QUOTE QEDITOR)))) (if QEDITOR then (QE-PLACE-ENTRIES QEDITOR) (QE-DISPLAY-ENTRIES QEDITOR) else (BITBLT OLDBM (fetch (REGION LEFT) of OLDREG) (fetch (REGION BOTTOM) of OLDREG) WINDOW))))
)

(QE-RUN-EDITOR
(LAMBDA (QEDITOR) (* Koomen "22-Jan-88 13:38") (while T bind COMMAND first (QE-CREATE-ENTRIES QEDITOR) (QE-PLACE-ENTRIES QEDITOR) (QE-DISPLAY-ENTRIES QEDITOR) eachtime (BLOCK) when (SETQ COMMAND (fetch (QEDITOR COMMAND) of QEDITOR)) do (QE-PROMPTPRINT QEDITOR) (SELECTQ COMMAND (Left (OR (QE-FOCUS-SELECTION QEDITOR COMMAND) (QE-CMD-LEFT QEDITOR))) (Right (OR (QE-FOCUS-SELECTION QEDITOR COMMAND) (QE-CMD-RIGHT QEDITOR))) (Insert (OR (QE-FOCUS-SELECTION QEDITOR COMMAND) (QE-CMD-INSERT QEDITOR))) (Edit (OR (QE-FOCUS-SELECTION QEDITOR COMMAND) (QE-CMD-EDIT QEDITOR))) (Delete (OR (QE-FOCUS-SELECTION QEDITOR COMMAND) (QE-CMD-DELETE QEDITOR))) (Abort (RETURN (fetch (QEDITOR QUEUE) of QEDITOR))) (Done (RETURN (QE-COLLECT-QUEUE QEDITOR))) (Display (QE-DISPLAY-ENTRIES QEDITOR)) (QE-PROMPTPRINT QEDITOR "Queue Editor command `" COMMAND "' not yet implemented.")) (replace (QEDITOR COMMAND) of QEDITOR with NIL)))
)

(QE-SCROLLFN
(LAMBDA (WINDOW XDELTA YDELTA CONTINUOUSFLG) (* ; "Edited 22-Jan-88 00:20 by Koomen") (* ;; "Adjust XDELTA and YDELTA such that scrolling always takes place along the diagonal axis, rather than along the horizontal or vertical axes") (PROG (QEDITOR DSP XOFFSET YOFFSET OLDREG NEWREG EXTENT TOSTARTFLG THUMBFLG DX DY) (SETQ QEDITOR (WINDOWPROP WINDOW (QUOTE QEDITOR))) (if (NULL QEDITOR) then (RETURN)) (SETQ DSP (fetch (QEDITOR DSP) of QEDITOR)) (SETQ XOFFSET (fetch (QEDITOR XOFFSET) of QEDITOR)) (SETQ YOFFSET (fetch (QEDITOR YOFFSET) of QEDITOR)) (SETQ OLDREG (DSPCLIPPINGREGION NIL DSP)) (SETQ NEWREG (COPY OLDREG)) (SETQ EXTENT (WINDOWPROP WINDOW (QUOTE EXTENT))) (if (LESSP XDELTA 0) then (SETQ TOSTARTFLG T) (SETQ DX (MINUS XDELTA)) else (SETQ DX XDELTA)) (if (LESSP YDELTA 0) then (SETQ TOSTARTFLG T) (SETQ DY (MINUS YDELTA)) else (SETQ DY YDELTA)) (if CONTINUOUSFLG then (SETQ DX XOFFSET) (SETQ DY YOFFSET) elseif (FLOATP DX) then (SETQ DY DX) (SETQ THUMBFLG T) elseif (FLOATP DY) then (SETQ DX (SETQ DY (DIFFERENCE 1 DY))) (SETQ THUMBFLG T) elseif (ZEROP DX) then (SETQ DX (QUOTIENT (TIMES DY XOFFSET) YOFFSET)) else (SETQ DY (QUOTIENT (TIMES DX YOFFSET) XOFFSET))) (replace (REGION LEFT) of NEWREG with (if THUMBFLG then (FIX (DIFFERENCE (TIMES DX (fetch (REGION WIDTH) of EXTENT)) (TIMES 0.5 (fetch (REGION WIDTH) of NEWREG)))) elseif TOSTARTFLG then (PLUS (fetch (REGION LEFT) of NEWREG) DX) else (DIFFERENCE (fetch (REGION LEFT) of NEWREG) DX))) (replace (REGION BOTTOM) of NEWREG with (if THUMBFLG then (FIX (DIFFERENCE (TIMES DY (fetch (REGION HEIGHT) of EXTENT)) (TIMES 0.5 (fetch (REGION HEIGHT) of NEWREG)))) elseif TOSTARTFLG then (PLUS (fetch (REGION BOTTOM) of NEWREG) DY) else (DIFFERENCE (fetch (REGION BOTTOM) of NEWREG) DY))) (MAKEWITHINREGION NEWREG (WINDOWPROP WINDOW (QUOTE EXTENT))) (if (NOT (EQUAL NEWREG OLDREG)) then (PROG ((NEWDSPX (PLUS (DSPXOFFSET NIL DSP) (DIFFERENCE (fetch (REGION LEFT) of OLDREG) (fetch (REGION LEFT) of NEWREG)))) (NEWDSPY (PLUS (DSPYOFFSET NIL DSP) (DIFFERENCE (fetch (REGION BOTTOM) of OLDREG) (fetch (REGION BOTTOM) of NEWREG))))) (UNINTERRUPTABLY (DSPCLIPPINGREGION NEWREG DSP) (DSPXOFFSET NEWDSPX DSP) (DSPYOFFSET NEWDSPY DSP))) (QE-DISPLAY-ENTRIES QEDITOR))))
)

(QE-SELECT-ENTRY
(LAMBDA (QEDITOR NEW-SELECTION) (* ; "Edited 21-Jan-88 23:56 by Koomen") (LET ((OLD-SELECTION (fetch (QEDITOR SELECTION) of QEDITOR))) (if OLD-SELECTION then (QE-TOGGLE-ENTRY QEDITOR OLD-SELECTION)) (if NEW-SELECTION then (QE-TOGGLE-ENTRY QEDITOR NEW-SELECTION T)) (replace (QEDITOR SELECTION) of QEDITOR with NEW-SELECTION) (if (AND NEW-SELECTION (NEQ NEW-SELECTION OLD-SELECTION)) then (QE-FOCUS-SELECTION QEDITOR)) NEW-SELECTION))
)

(QE-SLIDE-ENTRY
(LAMBDA (QEDITOR ENTRY BUTTON) (* Koomen "22-Jan-88 14:43") (* ;; "Selects ENTRY.") (* ;; "If BUTTON = LEFT and mouse leaves ENTRY's region, deselects ENTRY and returns.") (* ;; "If BUTTON = MIDDLE and mouse leaves ENTRY's region on the right, moves selection to the right if possible and loops.") (* ;; "If BUTTON = MIDDLE and mouse leaves ENTRY's region on the left, moves selection to the left if possible and loops.") (DECLARE (GLOBALVARS LASTMOUSEBUTTONS LASTMOUSEX LASTMOUSEY)) (bind X Y REG (L-OK ← T) (R-OK ← T) (QR ← (WINDOWREGION (fetch (QEDITOR WINDOW) of QEDITOR))) first (QE-PROMPTPRINT QEDITOR) (QE-SELECT-ENTRY QEDITOR ENTRY) while (AND ENTRY (if (EQ BUTTON (QUOTE LEFT)) then (MOUSESTATE (ONLY LEFT)) elseif (EQ BUTTON (QUOTE MIDDLE)) then (MOUSESTATE (ONLY MIDDLE)))) do (SETQ REG (fetch (QENTRY BIGBOX) of ENTRY)) (SETQ X (LASTMOUSEX (fetch (QEDITOR WINDOW) of QEDITOR))) (SETQ Y (LASTMOUSEY (fetch (QEDITOR WINDOW) of QEDITOR))) (if (INSIDEP REG X Y) then (* ; "sit tight") elseif (EQ BUTTON (QUOTE LEFT)) then (QE-SELECT-ENTRY QEDITOR) (RETURN) elseif (NOT (INSIDEP QR LASTMOUSEX LASTMOUSEY)) then (* ; "sit tight") elseif (AND (LESSP X (fetch (REGION LEFT) of REG)) (LESSP Y (fetch (REGION TOP) of REG))) then (if L-OK then (QE-PROMPTPRINT QEDITOR) (if (EQ ENTRY (SETQ ENTRY (QE-CMD-LEFT QEDITOR))) then (SETQ L-OK) else (SETQ R-OK T))) elseif (AND (GREATERP X (fetch (REGION RIGHT) of REG)) (GREATERP Y (fetch (REGION BOTTOM) of REG))) then (if R-OK then (QE-PROMPTPRINT QEDITOR) (if (EQ ENTRY (SETQ ENTRY (QE-CMD-RIGHT QEDITOR))) then (SETQ R-OK) else (SETQ L-OK T))))))
)

(QE-TOGGLE-ENTRY
(LAMBDA (QEDITOR ENTRY SELECT?) (* ; "Edited 21-Jan-88 23:17 by Koomen") (if (AND (fetch (QENTRY VISIBLE?) of ENTRY) (NEQ SELECT? (fetch (QENTRY SELECTED?) of ENTRY))) then (LET ((DSP (fetch (QEDITOR DSP) of QEDITOR)) (BOX (fetch (QENTRY INVBOX) of ENTRY))) (DSPFILL BOX BLACKSHADE (QUOTE INVERT) DSP) (if (SETQ BOX (fetch (QENTRY OBSBOX) of ENTRY)) then (DSPFILL BOX BLACKSHADE (QUOTE INVERT) DSP))) (replace (QENTRY SELECTED?) of ENTRY with SELECT?)))
)

(QE-UNMARKASCHANGED
(LAMBDA (QEDITOR) (* ; "Edited 27-Nov-87 17:11 by Koomen") (replace (QEDITOR CHANGES?) of QEDITOR with NIL) (WINDOWPROP (fetch (QEDITOR WINDOW) of QEDITOR) (fetch (QEDITOR TITLE) of QEDITOR)) QEDITOR)
)

(QE-WHENSELECTEDFN
(LAMBDA (ITEM MENU) (* Koomen "11-Dec-87 14:53") (* ; "Edited 25-Nov-87 16:53 by Koomen") (PROG ((QEDITOR (GETMENUPROP MENU (QUOTE QEDITOR)))) (if QEDITOR then (if (fetch (QEDITOR COMMAND) of QEDITOR) then (QE-PROMPTPRINT QEDITOR "Queue Editor busy, executing `" (fetch (QEDITOR COMMAND) of QEDITOR) "'") else (replace (QEDITOR COMMAND) of QEDITOR with (CADR ITEM))))))
)
)

(RPAQ? *QEDITORS* )
(DECLARE%: DOEVAL@COMPILE DONTCOPY

(GLOBALVARS *QEDITORS*)
)

(PUTPROPS QEDIT FILETYPE :TCOMPL)

(PUTPROPS QEDIT MAKEFILE-ENVIRONMENT (:READTABLE "INTERLISP" :PACKAGE "INTERLISP" :BASE 10))
(DECLARE%: DONTEVAL@LOAD DOEVAL@COMPILE DONTCOPY COMPILERVARS 

(ADDTOVAR NLAMA )

(ADDTOVAR NLAML )

(ADDTOVAR LAMA QE-PROMPTPRINT)
)
(PUTPROPS QEDIT COPYRIGHT ("Johannes A. G. M. Koomen" 1987 1988))
(DECLARE%: DONTCOPY
  (FILEMAP (NIL (2284 3923 (QEDIT 2294 . 3393) (QEDIT.CURRENT.QUEUE 3395 . 3624) (QEDIT.RESET 3626 . 
3921)) (6458 29869 (QE-ACQUIRE-EDITOR 6468 . 6757) (QE-ADJUST-SCROLL-PARAMS 6759 . 7074) (
QE-BUTTONEVENTFN 7076 . 7473) (QE-CLOSEFN 7475 . 7752) (QE-CMD-INSERT 7754 . 8729) (QE-CMD-EDIT 8731
 . 9521) (QE-CMD-DELETE 9523 . 10342) (QE-CMD-LEFT 10344 . 11172) (QE-CMD-RIGHT 11174 . 11883) (
QE-COLLECT-QUEUE 11885 . 12046) (QE-COMPUTE-LABEL 12048 . 12538) (QE-CREATE-EDITOR 12540 . 13726) (
QE-CREATE-ENTRIES 13728 . 14085) (QE-CREATE-ENTRY 14087 . 14222) (QE-DISPLAY-ENTRIES 14224 . 14497) (
QE-DISPLAY-ENTRIES-AUX 14499 . 14832) (QE-DISPLAY-ENTRY 14834 . 15433) (QE-FOCUS-SELECTION 15435 . 
16046) (QE-INIT-EDITOR 16048 . 17267) (QE-MARKASCHANGED 17269 . 17598) (QE-MARK-VISIBLE-ENTRIES 17600
 . 18037) (QE-MAX-INDEX-WIDTH 18039 . 18222) (QE-MAX-LABEL-WIDTH 18224 . 18499) (QE-MOUSE-IN-ENTRYP 
18501 . 18727) (QE-MOUSED-ENTRY 18729 . 18890) (QE-PLACE-ENTRIES 18892 . 21068) (QE-PROMPTPRINT 21070
 . 21540) (QE-REDISPLAY-ENTRY 21542 . 22050) (QE-RELEASE-EDITOR 22052 . 22656) (QE-REPAINTFN 22658 . 
22834) (QE-RESET-DSP 22836 . 23230) (QE-RESHAPEFN 23232 . 23541) (QE-RUN-EDITOR 23543 . 24470) (
QE-SCROLLFN 24472 . 26710) (QE-SELECT-ENTRY 26712 . 27164) (QE-SLIDE-ENTRY 27166 . 28777) (
QE-TOGGLE-ENTRY 28779 . 29251) (QE-UNMARKASCHANGED 29253 . 29475) (QE-WHENSELECTEDFN 29477 . 29867))))
)
STOP