(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10) (FILECREATED "12-Jul-2022 14:18:56"  {DSK}kaplan>Local>medley3.5>working-medley>lispusers>EDITFONT.;10 28741 :CHANGES-TO (FNS READSTRIKEFONTFILE) (VARS EDITFONTCOMS) :PREVIOUS-DATE "27-Jun-2022 10:59:12" {DSK}kaplan>local>medley3.5>working-medley>lispusers>EDITFONT.;5) (* ; " Copyright (c) 1985-1986 by Xerox Corporation. ") (PRETTYCOMPRINT EDITFONTCOMS) (RPAQQ EDITFONTCOMS ((* EDITFONT -- By Kelly Roach. Need to LOAD EXPORTS.ALL in order to compile this file. *) (INITVARS (EF.MENU NIL) (EF.TITLEMENU NIL)) (RECORDS CHARITEM) (FNS EF.INIT EF.PROMPT EF.MESSAGE EF.CLOSEFN EF.CHARITEMS EF.BUTTONEVENTFN EF.WHENSELECTEDFN EF.EDITBM EF.MIDDLEBUTTONFN EF.CHANGESIZE EF.DELETE EF.ENTER EF.REPLACE EF.SAVE EF.BLANK COPYFONT READSTRIKEFONTFILE) (FNS BLANKFONTCREATE EDITFONT) (DECLARE%: EVAL@COMPILE DONTCOPY (CONSTANTS (BITSPERWORD 16) (BYTESPERWORD 2) (MAXCODE 255) (DUMMYINDEX 256)) (FILES (LOADCOMP) FONT)) (P (EF.INIT)))) (* EDITFONT -- By Kelly Roach. Need to LOAD EXPORTS.ALL in order to compile this file. *) (RPAQ? EF.MENU NIL) (RPAQ? EF.TITLEMENU NIL) (DECLARE%: EVAL@COMPILE (RECORD CHARITEM (BITMAP (CHARCODE DUMMYFLG))) ) (DEFINEQ (EF.INIT [LAMBDA NIL (* kbr%: "21-Oct-85 15:50") (PROG NIL [SETQ EF.MENU (create MENU ITEMS _ '((CHANGESIZE 'EF.CHANGESIZE "Change size of character.") (DELETE ''EF.DELETE "Delete character.") (EDITBM ''EF.EDITBM "Edit character.") (REPLACE ''EF.REPLACE "Prompt for bitmap to replace character."] (SETQ EF.TITLEMENU (create MENU ITEMS _ '((SAVE 'EF.SAVE "Save EDITFONT's work back into font."]) (EF.PROMPT [LAMBDA (STRING WINDOW) (* kbr%: "16-Oct-85 22:48") (PROG (PROMPTW ANSWER) (SETQ PROMPTW (GETPROMPTWINDOW WINDOW)) (CLEARW PROMPTW) (PRIN1 STRING PROMPTW) (PRIN1 " " PROMPTW) (SETQ ANSWER (RESETLST (RESETSAVE (TTYDISPLAYSTREAM PROMPTW)) (RESETSAVE (TTY.PROCESS (THIS.PROCESS))) (TTYINREAD PROMPTW))) (TERPRI PROMPTW) (SETQ ANSWER (EVAL ANSWER)) (RETURN ANSWER]) (EF.MESSAGE [LAMBDA (STRING WINDOW) (* kbr%: "16-Oct-85 22:50") (PROG (PROMPTW) (SETQ PROMPTW (GETPROMPTWINDOW WINDOW)) (PRIN1 STRING PROMPTW]) (EF.CLOSEFN [LAMBDA (WINDOW) (* kbr%: "15-Dec-84 15:20") (* Close EF Window. *) (PROG NIL [COND ((EQ (ASKUSER "Close Editfont Window?") 'N) (RETURN 'DON'T] (CLOSEW WINDOW) (* Break circularity.  *) (WINDOWPROP WINDOW 'MENU NIL]) (EF.CHARITEMS [LAMBDA (FONT FROMCHAR8CODE TOCHAR8CODE CHARSET) (* kbr%: "16-Oct-85 23:11") (* Get CHARITEMS for FONT.  *) (PROG (FROMCHARCODE TOCHARCODE OFFSETS DUMMYOFFSET DUMMYBITMAP OFFSET BITMAP CHARITEM CHARITEMS) (* Get DUMMY CHARITEM *) (* Interlisp assuming 256 is dummy is dumb now because of NS chars.  Maybe Kaplan and Nuyens will fix. *) (SETQ DUMMYBITMAP (GETCHARBITMAP 256 FONT)) (SETQ CHARITEM (create CHARITEM BITMAP _ DUMMYBITMAP CHARCODE _ DUMMYINDEX DUMMYFLG _ T)) (push CHARITEMS CHARITEM) (* Get ordinairy CHARITEMs.  *) (SETQ FROMCHARCODE (IPLUS (ITIMES 256 CHARSET) FROMCHAR8CODE)) (SETQ TOCHARCODE (IPLUS (ITIMES 256 CHARSET) TOCHAR8CODE)) (SETQ OFFSETS (fetch (CHARSETINFO OFFSETS) of (\GETCHARSETINFO CHARSET FONT))) (SETQ DUMMYOFFSET (\FGETOFFSET OFFSETS DUMMYINDEX)) (for I from TOCHARCODE to FROMCHARCODE by -1 do (SETQ OFFSET (\FGETOFFSET OFFSETS I)) [COND ((EQ OFFSET DUMMYOFFSET) (SETQ CHARITEM (create CHARITEM BITMAP _ DUMMYBITMAP CHARCODE _ I DUMMYFLG _ T))) (T (SETQ BITMAP (GETCHARBITMAP I FONT)) (SETQ CHARITEM (create CHARITEM BITMAP _ BITMAP CHARCODE _ I DUMMYFLG _ NIL] (push CHARITEMS CHARITEM)) (* OKEY DOKEY *) (RETURN CHARITEMS]) (EF.BUTTONEVENTFN [LAMBDA (WINDOW) (* kbr%: "16-Oct-85 22:19") (PROG (COMMAND) (COND ((INSIDEP (DSPCLIPPINGREGION NIL WINDOW) (LASTMOUSEX WINDOW) (LASTMOUSEY WINDOW)) (MENUBUTTONFN WINDOW)) ((SETQ COMMAND (MENU EF.TITLEMENU)) (APPLY* COMMAND WINDOW]) (EF.WHENSELECTEDFN [LAMBDA (CHARITEM MENU KEY) (* kbr%: "16-Oct-85 22:26") (PROG NIL (COND (CHARITEM (SELECTQ KEY (LEFT (EF.EDITBM CHARITEM MENU)) (MIDDLE (EF.MIDDLEBUTTONFN CHARITEM MENU)) (* Do nothing. *)]) (EF.EDITBM [LAMBDA (CHARITEM MENU) (* kbr%: "15-Dec-84 15:20") (PROG (BITMAP CHARCODE DUMMYFLG) (RESETLST [RESETSAVE (SHADEITEM CHARITEM MENU BLACKSHADE) `(SHADEITEM ,CHARITEM ,MENU ,WHITESHADE] (SETQ BITMAP (fetch (CHARITEM BITMAP) of CHARITEM)) [COND ((AND (NOT (IEQP (fetch (CHARITEM CHARCODE) of CHARITEM) DUMMYINDEX)) (fetch (CHARITEM DUMMYFLG) of CHARITEM)) (* Undummify this CHARITEM.  *) (SETQ BITMAP (COPYALL BITMAP)) (UNINTERRUPTABLY (replace (CHARITEM BITMAP) of CHARITEM with BITMAP) (replace (CHARITEM DUMMYFLG) of CHARITEM with NIL))] (EDITBM BITMAP)) (* Update MENU image. SHADEITEM's side effects above suffice if we only changed  one menu item. (I.e. we edited an ordinairy CHARITEM.) *) (COND ((IEQP (fetch (CHARITEM CHARCODE) of CHARITEM) DUMMYINDEX) (UPDATE/MENU/IMAGE MENU) (REDISPLAYW (WFROMMENU MENU]) (EF.MIDDLEBUTTONFN [LAMBDA (CHARITEM MENU) (* kbr%: "15-Dec-84 15:20") (PROG (COMMAND) (SETQ COMMAND (MENU EF.MENU)) (COND (COMMAND (APPLY* COMMAND CHARITEM MENU]) (EF.CHANGESIZE [LAMBDA (CHARITEM MENU) (* kbr%: "16-Oct-85 23:03") (* Change height & width of CHARITEM's  BITMAP *) (PROG (HEIGHT WIDTH NEWBITMAP WINDOW) (SETQ WINDOW (WFROMMENU MENU)) (SETQ HEIGHT (EF.PROMPT "New height?" WINDOW)) (COND ((NULL HEIGHT) (EF.MESSAGE "Aborted." WINDOW) (RETURN))) (SETQ HEIGHT (EVAL HEIGHT)) (SETQ WIDTH (EF.PROMPT "New width?" WINDOW)) (COND ((NULL WIDTH) (EF.MESSAGE "Aborted." WINDOW) (RETURN))) (SETQ WIDTH (EVAL WIDTH)) (SETQ NEWBITMAP (BITMAPCREATE WIDTH HEIGHT)) (BITBLT (fetch (CHARITEM BITMAP) of CHARITEM) NIL NIL NEWBITMAP) (UNINTERRUPTABLY (replace (CHARITEM BITMAP) of CHARITEM with NEWBITMAP) (replace (CHARITEM DUMMYFLG) of CHARITEM with NIL)) (UPDATE/MENU/IMAGE MENU) (REDISPLAYW (WFROMMENU MENU]) (EF.DELETE [LAMBDA (CHARITEM MENU) (* kbr%: "15-Dec-84 15:20") (* Turn CHARITEM into dummy charitem.  *) (PROG (WINDOW CHARITEMS DUMMYBITMAP) (SETQ WINDOW (WFROMMENU MENU)) (SETQ CHARITEMS (WINDOWPROP WINDOW 'CHARITEMS)) [SETQ DUMMYBITMAP (fetch (CHARITEM BITMAP) of (CAR (LAST CHARITEMS] (UNINTERRUPTABLY (replace (CHARITEM BITMAP) of CHARITEM with DUMMYBITMAP) (replace (CHARITEM DUMMYFLG) of CHARITEM with T)) (UPDATE/MENU/IMAGE MENU) (REDISPLAYW (WFROMMENU MENU]) (EF.ENTER [LAMBDA (CHARITEM MENU) (* kbr%: "15-Dec-84 15:20") (* Enter BITMAP of CHARITEM.  *) (PROG (NEWBITMAP) (SETQ NEWBITMAP (EF.PROMPT "Enter new bitmap (evaluated):")) (COND ((NULL NEWBITMAP) (printout T "Aborted." T)) ((type? BITMAP NEWBITMAP) (UNINTERRUPTABLY (replace (CHARITEM BITMAP) of CHARITEM with NEWBITMAP) (replace (CHARITEM DUMMYFLG) of CHARITEM with NIL)) (UPDATE/MENU/IMAGE MENU) (REDISPLAYW (WFROMMENU MENU))) (T (LISPERROR "ILLEGAL ARG" NEWBITMAP]) (EF.REPLACE [LAMBDA (CHARITEM MENU) (* kbr%: "16-Oct-85 23:04") (* Replace BITMAP of CHARITEM.  *) (PROG (BITMAP WINDOW) (SETQ WINDOW (WFROMMENU MENU)) (SETQ BITMAP (EF.PROMPT "New bitmap?" WINDOW)) (COND ((NULL BITMAP) (EF.MESSAGE "Aborted." WINDOW)) ((type? BITMAP BITMAP) (UNINTERRUPTABLY (replace (CHARITEM BITMAP) of CHARITEM with BITMAP) (replace (CHARITEM DUMMYFLG) of CHARITEM with NIL)) (UPDATE/MENU/IMAGE MENU) (REDISPLAYW (WFROMMENU MENU))) (T (LISPERROR "ILLEGAL ARG" BITMAP]) (EF.SAVE [LAMBDA (WINDOW) (* kbr%: "21-Oct-85 15:39") (* Save EDITFONT changes to FONT.  *) (PROG (CHARITEMS FONT CB CBWIDTH CBHEIGHT WIDTHS OFFSETS HEIGHT WIDTH DUMMYOFFSET OFFSET BITMAP FIRSTCHAR LASTCHAR CHARSET CSINFO) (SETQ CHARITEMS (WINDOWPROP WINDOW 'CHARITEMS)) (SETQ FONT (WINDOWPROP WINDOW 'FONT)) (* New allocations. *) (SETQ CBWIDTH 0) (SETQ CBHEIGHT 0) [for I from 0 to DUMMYINDEX as CHARITEM in CHARITEMS when (OR (NOT (fetch (CHARITEM DUMMYFLG) of CHARITEM)) (IEQP I DUMMYINDEX)) do (SETQ BITMAP (fetch (CHARITEM BITMAP) of CHARITEM)) (SETQ CBWIDTH (IPLUS CBWIDTH (fetch (BITMAP BITMAPWIDTH ) of BITMAP))) (SETQ CBHEIGHT (IMAX CBHEIGHT (fetch (BITMAP BITMAPHEIGHT ) of BITMAP] (SETQ CSINFO (create CHARSETINFO CHARSETASCENT _ (fetch (FONTDESCRIPTOR \SFAscent) of FONT) CHARSETDESCENT _ (fetch (FONTDESCRIPTOR \SFDescent) of FONT))) (SETQ OFFSETS (fetch (CHARSETINFO OFFSETS) of CSINFO)) (SETQ WIDTHS (fetch (CHARSETINFO WIDTHS) of CSINFO)) (* Store new info in allocations.  *) (SETQ OFFSET 0) [SETQ DUMMYOFFSET (IDIFFERENCE CBWIDTH (fetch (BITMAP BITMAPWIDTH) of (fetch (CHARITEM BITMAP) of (CAR (LAST CHARITEMS] (SETQ CB (BITMAPCREATE CBWIDTH CBHEIGHT)) [for I from 0 to DUMMYINDEX as CHARITEM in CHARITEMS do (SETQ BITMAP (fetch (CHARITEM BITMAP) of CHARITEM)) (SETQ WIDTH (fetch (BITMAP BITMAPWIDTH) of BITMAP)) (SETQ HEIGHT (fetch (BITMAP BITMAPHEIGHT) of BITMAP)) (\FSETWIDTH WIDTHS I WIDTH) (COND ((AND (fetch (CHARITEM DUMMYFLG) of CHARITEM) (NOT (IEQP I DUMMYINDEX))) (\FSETOFFSET OFFSETS I DUMMYOFFSET)) (T (\FSETOFFSET OFFSETS I OFFSET) (BITBLT BITMAP 0 0 CB OFFSET 0 WIDTH HEIGHT 'INPUT 'REPLACE) (SETQ OFFSET (IPLUS OFFSET WIDTH] (* FIRSTCHAR & LASTCHAR.  (I wonder what you're suppose to do if  there aren't any chars?) *) [SETQ FIRSTCHAR (\CHAR8CODE (fetch (CHARITEM CHARCODE) of (for CHARITEM in CHARITEMS thereis (NOT (fetch (CHARITEM DUMMYFLG) of CHARITEM] [SETQ LASTCHAR (\CHAR8CODE (fetch (CHARITEM CHARCODE) of (for CHARITEM in (REVERSE CHARITEMS) thereis (NOT (fetch (CHARITEM DUMMYFLG) of CHARITEM] [SETQ CHARSET (\CHARSET (fetch (CHARITEM CHARCODE) of (CAR CHARITEMS] (* Store new info. *) (UNINTERRUPTABLY (replace (CHARSETINFO CHARSETBITMAP) of CSINFO with CB) (replace (CHARSETINFO WIDTHS) of CSINFO with WIDTHS) (replace (CHARSETINFO OFFSETS) of CSINFO with OFFSETS) (\FONTRESETCHARWIDTHS CSINFO FIRSTCHAR LASTCHAR) (replace (CHARSETINFO IMAGEWIDTHS) of CSINFO with WIDTHS)) (* OKEY DOKEY. *) ]) (EF.BLANK [LAMBDA (FAMILY SIZE FACE FIRSTCHAR LASTCHAR ASCENT DESCENT WIDTH) (* kbr%: "21-Oct-85 15:25") (PROG (FONT CSINFO WIDTHS DUMMYWIDTH OFFSETS DUMMYOFFSET CB CBWIDTH CBHEIGHT) (SETQ FAMILY (U-CASE FAMILY)) (COND ((NOT (FIXP SIZE)) (LISPERROR "ILLEGAL ARG" SIZE))) (SETQ FACE (\FONTFACE FACE)) (COND ((NOT (SMALLP FIRSTCHAR)) (LISPERROR "ILLEGAL ARG" FIRSTCHAR))) (COND ((NOT (SMALLP LASTCHAR)) (LISPERROR "ILLEGAL ARG" LASTCHAR))) (COND ((NOT (SMALLP ASCENT)) (LISPERROR "ILLEGAL ARG" ASCENT))) (COND ((NOT (SMALLP DESCENT)) (LISPERROR "ILLEGAL ARG" DESCENT))) (COND ([NOT (OR (FIXP WIDTH) (AND (LISTP WIDTH) [NOT (for W in WIDTH thereis (NOT (FIXP W] (IEQP (LENGTH WIDTH) (IPLUS LASTCHAR (IMINUS FIRSTCHAR) 1 1] (LISPERROR "ILLEGAL ARG" WIDTH))) (* WIDTHS. *) (SETQ CSINFO (create CHARSETINFO CHARSETASCENT _ ASCENT CHARSETDESCENT _ DESCENT)) (SETQ WIDTHS (fetch (CHARSETINFO WIDTHS) of CSINFO)) [COND ((LISTP WIDTH) (SETQ DUMMYWIDTH (CAR (LAST WIDTH))) (for I from 0 to (SUB1 FIRSTCHAR) do (\FSETWIDTH WIDTHS I DUMMYWIDTH)) (for I from FIRSTCHAR to LASTCHAR as W in WIDTH do (\FSETWIDTH WIDTHS I W)) (for I from (ADD1 LASTCHAR) to DUMMYINDEX do (\FSETWIDTH WIDTHS I DUMMYWIDTH))) (T (for I from 0 to DUMMYINDEX do (\FSETWIDTH WIDTHS I WIDTH] (* OFFSETS. *) (SETQ OFFSETS (fetch (CHARSETINFO OFFSETS) of CSINFO)) [for I from FIRSTCHAR to (ADD1 LASTCHAR) do (\FSETOFFSET OFFSETS (ADD1 I) (IPLUS (\FGETOFFSET OFFSETS I) (\FGETWIDTH WIDTHS I] (SETQ DUMMYOFFSET (\FGETOFFSET OFFSETS (ADD1 LASTCHAR))) (for I from 0 to (SUB1 FIRSTCHAR) do (\FSETOFFSET OFFSETS I DUMMYOFFSET)) (for I from (ADD1 LASTCHAR) to DUMMYINDEX do (\FSETOFFSET OFFSETS I DUMMYOFFSET)) (* Characterbitmap CB.  *) (SETQ CBHEIGHT (IPLUS ASCENT DESCENT)) (SETQ CBWIDTH (IPLUS (\FGETOFFSET OFFSETS DUMMYINDEX) (\FGETWIDTH WIDTHS DUMMYINDEX))) (SETQ CB (BITMAPCREATE CBWIDTH CBHEIGHT)) (replace (CHARSETINFO CHARSETBITMAP) of CSINFO with CB) (* FONT. *) (\FONTRESETCHARWIDTHS CSINFO FIRSTCHAR LASTCHAR) (replace (CHARSETINFO IMAGEWIDTHS) of CSINFO with (fetch (CHARSETINFO WIDTHS) of CSINFO)) [SETQ FONT (create FONTDESCRIPTOR FONTDEVICE _ 'DISPLAY FONTFAMILY _ FAMILY FONTSIZE _ SIZE FONTFACE _ FACE \SFAscent _ 0 \SFDescent _ 0 \SFHeight _ 0 ROTATION _ 0 FONTDEVICESPEC _ (LIST FAMILY SIZE FACE 0 'DISPLAY] (replace (FONTDESCRIPTOR \SFAscent) of FONT with (IMAX (fetch (FONTDESCRIPTOR \SFAscent) of FONT) (fetch (CHARSETINFO CHARSETASCENT) of CSINFO))) (replace (FONTDESCRIPTOR \SFDescent) of FONT with (IMAX (fetch (FONTDESCRIPTOR \SFDescent) of FONT) (fetch (CHARSETINFO CHARSETDESCENT) of CSINFO))) [replace (FONTDESCRIPTOR \SFHeight) of FONT with (IMAX (fetch (FONTDESCRIPTOR \SFHeight) of FONT) (IPLUS (fetch (CHARSETINFO CHARSETASCENT) of CSINFO) (fetch (CHARSETINFO CHARSETDESCENT) of CSINFO] (\SETCHARSETINFO (fetch (FONTDESCRIPTOR FONTCHARSETVECTOR) of FONT) 0 CSINFO) (replace (FONTDESCRIPTOR FONTAVGCHARWIDTH) of FONT with (\AVGCHARWIDTH FONT)) (RETURN FONT]) (COPYFONT [LAMBDA (FONT) (* jds "26-Aug-86 16:01") (PROG (NEWFONT NEWCHARSETVECTOR OLDCHARSETVECTOR NEWCSINFO OLDCSINFO) (SETQ NEWFONT (create FONTDESCRIPTOR using FONT)) (SETQ NEWCHARSETVECTOR (\ALLOCBLOCK (ADD1 \MAXCHARSET) T)) (SETQ OLDCHARSETVECTOR (fetch (FONTDESCRIPTOR FONTCHARSETVECTOR) of FONT)) [for CHARSET from 0 to \MAXCHARSET do (SETQ OLDCSINFO (\GETBASEPTR OLDCHARSETVECTOR (UNFOLD CHARSET 2))) (COND (OLDCSINFO [SETQ NEWCSINFO (create CHARSETINFO CHARSETASCENT _ (fetch (CHARSETINFO CHARSETASCENT) of OLDCSINFO) CHARSETDESCENT _ (fetch (CHARSETINFO CHARSETDESCENT) of OLDCSINFO) CHARSETBITMAP _ (COPYALL (fetch (CHARSETINFO CHARSETBITMAP) of OLDCSINFO] (\BLT (fetch (CHARSETINFO WIDTHS) of NEWCSINFO) (fetch (CHARSETINFO WIDTHS) of OLDCSINFO) (ADD1 DUMMYINDEX)) (\BLT (fetch (CHARSETINFO OFFSETS) of NEWCSINFO) (fetch (CHARSETINFO OFFSETS) of OLDCSINFO) (ADD1 DUMMYINDEX)) (replace (CHARSETINFO IMAGEWIDTHS) of NEWCSINFO with (fetch (CHARSETINFO WIDTHS) of NEWCSINFO)) (\RPLPTR NEWCHARSETVECTOR (UNFOLD CHARSET 2) NEWCSINFO] (RETURN NEWFONT]) (READSTRIKEFONTFILE [LAMBDA (FAMILY SIZE FACE FILE FONT CHARSET) (* ;; "Edited 12-Jul-2022 14:16 by rmk: Removed slightlly different implementations of \READSTRIKEFONTFILE and charset installation in favor of common code in FONT.") (* ;; "Edited 12-Jul-2022 13:33 by rmk") (* kbr%: "14-Oct-85 11:16") (CL:UNLESS CHARSET (SETQ CHARSET 0)) (* ; "Returns fontdescriptor FONT. *") (LET (STRM CSINFO) (SETQ STRM (OPENSTREAM FILE 'INPUT 'OLD)) (\WIN STRM) (SETQ CSINFO (\READSTRIKEFONTFILE STRM FAMILY SIZE FACE)) (CLOSEF STRM) (* ;  "This part imitates \CREATEDISPLAYFONT *") (CL:UNLESS FONT [SETQ FONT (create FONTDESCRIPTOR FONTDEVICE _ 'DISPLAY FONTFAMILY _ FAMILY FONTSIZE _ SIZE FONTFACE _ FACE \SFAscent _ 0 \SFDescent _ 0 \SFHeight _ 0 ROTATION _ 0 FONTDEVICESPEC _ (LIST FAMILY SIZE FACE 0 'DISPLAY]) (\INSTALLCHARSETINFO FONT CSINFO CHARSET) FONT]) ) (DEFINEQ (BLANKFONTCREATE [LAMBDA (FAMILY SIZE FACE FIRSTCHAR LASTCHAR ASCENT DESCENT WIDTH) (* mjs "27-Mar-85 14:48") (EF.BLANK FAMILY SIZE FACE FIRSTCHAR LASTCHAR ASCENT DESCENT WIDTH]) (EDITFONT [LAMBDA (FONT FROMCHARCODE TOCHARCODE CHARSET) (* ; "Edited 27-Jun-2022 10:47 by rmk") (* mjs "27-Mar-85 14:48") (* kbr%: "21-Oct-85 15:35") (SETQ FONT (FONTCREATE FONT)) (CL:UNLESS FROMCHARCODE (SETQ FROMCHARCODE 0)) (CL:UNLESS TOCHARCODE (SETQ TOCHARCODE 255)) (CL:UNLESS CHARSET (SETQ CHARSET 0)) (PROG (CHARITEMS MENU TITLE HEIGHT WIDTH REGION POS WINDOW) (SETQ CHARITEMS (EF.CHARITEMS FONT FROMCHARCODE TOCHARCODE CHARSET)) (SETQ MENU (create MENU MENUFONT _ FONT CENTERFLG _ T MENUCOLUMNS _ 16 ITEMS _ CHARITEMS WHENSELECTEDFN _ (FUNCTION EF.WHENSELECTEDFN))) [SETQ TITLE (PACK* (FONTPROP FONT 'FAMILY) (FONTPROP FONT 'SIZE) (PACKC (for ATOM in (FONTPROP FONT 'FACE) collect (CHCON1 ATOM] (SETQ HEIGHT (HEIGHTIFWINDOW (fetch (MENU IMAGEHEIGHT) of MENU) T)) (SETQ WIDTH (WIDTHIFWINDOW (fetch (MENU IMAGEWIDTH) of MENU))) (SETQ POS (GETBOXPOSITION WIDTH HEIGHT)) (SETQ REGION (create REGION LEFT _ (fetch (POSITION XCOORD) of POS) BOTTOM _ (fetch (POSITION YCOORD) of POS) WIDTH _ WIDTH HEIGHT _ HEIGHT)) (SETQ WINDOW (CREATEW REGION TITLE)) (WINDOWPROP WINDOW 'CHARITEMS CHARITEMS) (ADDMENU MENU WINDOW (create POSITION XCOORD _ 0 YCOORD _ 0)) (WINDOWPROP WINDOW 'BUTTONEVENTFN 'EF.BUTTONEVENTFN]) ) (DECLARE%: EVAL@COMPILE DONTCOPY (DECLARE%: EVAL@COMPILE (RPAQQ BITSPERWORD 16) (RPAQQ BYTESPERWORD 2) (RPAQQ MAXCODE 255) (RPAQQ DUMMYINDEX 256) (CONSTANTS (BITSPERWORD 16) (BYTESPERWORD 2) (MAXCODE 255) (DUMMYINDEX 256)) ) (FILESLOAD (LOADCOMP) FONT) ) (EF.INIT) (PUTPROPS EDITFONT COPYRIGHT ("Xerox Corporation" 1985 1986)) (DECLARE%: DONTCOPY (FILEMAP (NIL (1567 26117 (EF.INIT 1577 . 2303) (EF.PROMPT 2305 . 2887) (EF.MESSAGE 2889 . 3101) ( EF.CLOSEFN 3103 . 3630) (EF.CHARITEMS 3632 . 5853) (EF.BUTTONEVENTFN 5855 . 6267) (EF.WHENSELECTEDFN 6269 . 6673) (EF.EDITBM 6675 . 8073) (EF.MIDDLEBUTTONFN 8075 . 8320) (EF.CHANGESIZE 8322 . 9541) ( EF.DELETE 9543 . 10308) (EF.ENTER 10310 . 11141) (EF.REPLACE 11143 . 12006) (EF.SAVE 12008 . 16681) ( EF.BLANK 16683 . 22308) (COPYFONT 22310 . 24750) (READSTRIKEFONTFILE 24752 . 26115)) (26118 28332 ( BLANKFONTCREATE 26128 . 26385) (EDITFONT 26387 . 28330))))) STOP