(DEFINE-FILE-INFO PACKAGE "IL" READTABLE "INTERLISP")
(FILECREATED "26-Jan-88 09:37:38" |{EG:PARC:XEROX}<LANNING>LISP>USERS>GRID-ICONS.;12| 40708  

      changes to%:  (VARS GRID-ICONSCOMS)
                    (FNS ICONW.MOVEFN)

      previous date%: "18-Jan-88 09:39:08" |{EG:PARC:XEROX}<LANNING>LISP>USERS>GRID-ICONS.;11|)


(* "
Copyright (c) 1987, 1988 by Xerox Corporation.  All rights reserved.
")

(PRETTYCOMPRINT GRID-ICONSCOMS)

(RPAQQ GRID-ICONSCOMS 
       (

(* ;;; "For laying out icons on a grid")

        (FNS ICONW.MOVEFN \ENSURE.ICON.GRID \TRIM-ICON-FILE-TITLE GRID-WINDOW)
        (INITVARS (ENFORCE.ICON.GRID NIL)
               (ENFORCE.ICON.REGIONS NIL)
               (ICON.SPACING '(5 . 5))
               (ICON.SIZE '(85 . 85))
               (GRID.OFFSET '(0 . 0)))
        (GLOBALVARS ENFORCE.ICON.GRID ICON.SPACING ICON.SIZE GRID.OFFSET)
        (DECLARE%: DONTEVAL@LOAD DONTEVAL@COMPILE (ADVISE ICONW TITLEDICONW))
        

(* ;;; "Defining some nice Viewpoint-ish icons")

        (DECLARE%: DONTEVAL@LOAD DONTEVAL@COMPILE 
          
          (* ;; "Redefine the Lafite folder icon, making them a bit smaller")

               (VARS MSGFOLDERICON MSGFOLDERMASK
                     (MSGFOLDERTEMPLATE (create TITLEDICON ICON ← MSGFOLDERICON MASK ← MSGFOLDERMASK 
                                               TITLEREG ← (CREATEREGION 5 2 65 35)))))
        (DECLARE%: DONTEVAL@LOAD DONTEVAL@COMPILE 
          
          (* ;; "Redefine the Tedit icon, making it cuter and smaller")

               (P (if (GETD 'TEDIT)
                      then
                      (ADVISE '(TEXTSTREAM.TITLE IN \TEDIT.SHRINK.ICONCREATE) 'AFTER
                             '(SETQ !VALUE (\TRIM-ICON-FILE-TITLE !VALUE)))))
               (VARS TEDIT.ICON TEDIT.MASK (TEDIT.TITLED.ICON.TEMPLATE (create TITLEDICON ICON ← 
                                                                              TEDIT.ICON MASK ← 
                                                                              TEDIT.MASK TITLEREG ←
                                                                              (CREATEREGION 5 2 50 30
                                                                                     )))))
        (DECLARE%: DONTEVAL@LOAD DONTEVAL@COMPILE 
          
          (* ;; "Redefine the SEdit icon, making it smaller and cuter")

               (VARS SEDITICON SEDITICONMASK
                     (\\titled.icon (create TITLEDICON ICON ← SEDITICON MASK ← SEDITICONMASK TITLEREG 
                                           ← (CREATEREGION 5 5 50 65)))))
        (DECLARE%: DONTEVAL@LOAD DONTEVAL@COMPILE 
          
          (* ;; "Redefine the Sketch icon, making it cuter and smaller")

               (P (if (GETD 'SKETCH)
                      then
                      (ADVISE '(SKETCH.TITLE IN SK.SHRINK.ICONCREATE) 'AFTER '(SETQ !VALUE
                                                                                    (
                                                                                \TRIM-ICON-FILE-TITLE
                                                                                     !VALUE)))))
               (VARS SKETCH.ICON SKETCH.MASK
                     (SKETCH.TITLED.ICON.TEMPLATE (create TITLEDICON ICON ← SKETCH.ICON MASK ← 
                                                         SKETCH.MASK TITLEREG ←
                                                         (CREATEREGION 5 2 50 30)))))
        (DECLARE%: DONTEVAL@LOAD DONTEVAL@COMPILE 
          
          (* ;; "Make SPY icons appear on the grid")

               (P (if (GETD 'SPY.BUTTON)
                      then
                      (ADVISE 'SPY.BUTTON 'AFTER '(GRID-WINDOW (OR !VALUE SPY.BUTTON))))))
        (COMS 
          
          (* ;; "Define a nice icon for accessing the list of loaded files")

              (FNS LOADED-FILES-ICON-WINDOW-BUTTONEVENTFN)
              (DECLARE%: DONTEVAL@LOAD DONTEVAL@COMPILE
                     (VARS LOADED-FILES-ICON LOADED-FILES-ICON-MASK
                           (LOADED-FILES-ICON-WINDOW (LET ((W (TITLEDICONW (create TITLEDICON ICON ← 
                                                                                  LOADED-FILES-ICON 
                                                                                  MASK ← 
                                                                               LOADED-FILES-ICON-MASK 
                                                                                  TITLEREG ←
                                                                                  (CREATEREGION
                                                                                   7 9 55 10))
                                                                     "Lisp files" NIL
                                                                     (CREATEPOSITION 0 0)
                                                                     T
                                                                     'BOTTOM)))
                                                          (WINDOWPROP W 'BUTTONEVENTFN '
                                                               LOADED-FILES-ICON-WINDOW-BUTTONEVENTFN
                                                                 )
                                                          W)))))
        (DECLARE%: DONTEVAL@LOAD DONTEVAL@COMPILE 
          
          (* ;; "Define the standard icon, using the new Lyric feature")

               (VARS STANDARD-ICON STANDARD-ICON-MASK
                     (DEFAULTTEXTICON (create TITLEDICON ICON ← STANDARD-ICON MASK ← 
                                             STANDARD-ICON-MASK TITLEREG ← (CREATEREGION 5 5 50 60)))
                     (DEFAULTICONFN 'TEXTICON)))
        

(* ;;; "")

        

(* ;;; "Filemanager stuff")

        (DECLARE%: DONTCOPY (PROP MAKEFILE-ENVIRONMENT GRID-ICONS))
        (DECLARE%: DONTEVAL@LOAD DOEVAL@COMPILE DONTCOPY COMPILERVARS (ADDVARS (NLAMA)
                                                                             (NLAML)
                                                                             (LAMA 
                                                               LOADED-FILES-ICON-WINDOW-BUTTONEVENTFN
                                                                                   )))))



(* ;;; "For laying out icons on a grid")

(DEFINEQ

(ICONW.MOVEFN
  (LAMBDA (ICON POS)                                         (* ; "Edited 26-Jan-88 09:34 by smL")

(* ;;; "Make sure the icon gets moved on a grid")

    (LET ((ICON.WIDTH (fetch (REGION WIDTH) of (WINDOWPROP ICON 'REGION)))
          (ICON.HEIGHT (fetch (REGION HEIGHT) of (WINDOWPROP ICON 'REGION))))
         (COND
            ((OR (NOT ENFORCE.ICON.GRID)
                 (WINDOWPROP ICON 'IGNORE.ICON.GRID))
             POS)
            ((OR (GREATERP (fetch (POSITION XCOORD) of POS)
                        SCREENWIDTH)
                 (LESSP (PLUS (fetch (POSITION XCOORD) of POS)
                              ICON.WIDTH)
                        0)
                 (GREATERP (fetch (POSITION YCOORD) of POS)
                        SCREENHEIGHT)
                 (LESSP (PLUS (fetch (POSITION YCOORD) of POS)
                              ICON.HEIGHT)
                        0))                                  (* ; "Must be a deliberate attempt to move the icon off the screen, since the end result isn't visible.  In that case, let them move it.")

             POS)
            (T                                               (* ; "Compute the grid location for the icon, being careful not to push the icon (accidentally) off the screen")

               (LET* ((ICON.CENTER.X (PLUS (fetch (POSITION XCOORD) of POS)
                                           (QUOTIENT ICON.WIDTH 2)))
                      (ICON.CENTER.Y (PLUS (fetch (POSITION YCOORD) of POS)
                                           (QUOTIENT ICON.HEIGHT 2)))
                      (GRID.X.SIZE (PLUS (CAR ICON.SIZE)
                                         (CAR ICON.SPACING)))
                      (GRID.Y.SIZE (PLUS (CDR ICON.SIZE)
                                         (CDR ICON.SPACING)))
                      (GRID.X.OFFSET (CAR GRID.OFFSET))
                      (GRID.Y.OFFSET (CDR GRID.OFFSET))
                      (ICON.GRID.X (MAX 0 (QUOTIENT (MIN (DIFFERENCE ICON.CENTER.X GRID.X.OFFSET)
                                                         SCREENWIDTH)
                                                 GRID.X.SIZE)))
                      (ICON.GRID.Y (MAX 0 (QUOTIENT (MIN (DIFFERENCE ICON.CENTER.Y GRID.Y.OFFSET)
                                                         SCREENHEIGHT)
                                                 GRID.Y.SIZE))))
                     (IF (OR (NULL ENFORCE.ICON.REGIONS)
                             (FOR REGION IN ENFORCE.ICON.REGIONS THEREIS (INSIDE? REGION 
                                                                                ICON.CENTER.X 
                                                                                ICON.CENTER.Y)))
                         THEN (create POSITION
                                     XCOORD ← (PLUS (TIMES GRID.X.SIZE ICON.GRID.X)
                                                    (QUOTIENT (CAR ICON.SPACING)
                                                           2)
                                                    (QUOTIENT (DIFFERENCE (CAR ICON.SIZE)
                                                                     ICON.WIDTH)
                                                           2)
                                                    GRID.X.OFFSET)
                                     YCOORD ← (PLUS (TIMES GRID.Y.SIZE ICON.GRID.Y)
                                                    (QUOTIENT (CDR ICON.SPACING)
                                                           2)
                                                    (QUOTIENT (DIFFERENCE (CDR ICON.SIZE)
                                                                     ICON.HEIGHT)
                                                           2)
                                                    GRID.Y.OFFSET))
                       ELSE POS)))))))

(\ENSURE.ICON.GRID
  (LAMBDA (W)                                                (* smL "17-Apr-87 15:43")
    (LET ((OPENP (OPENWP W)))
         (MOVEW W (ICONW.MOVEFN W (create POSITION
                                         XCOORD ← (fetch LEFT of (WINDOWPROP W 'REGION))
                                         YCOORD ← (fetch BOTTOM of (WINDOWPROP W 'REGION)))))
         (if (NOT OPENP)
             then (CLOSEW W)))))

(\TRIM-ICON-FILE-TITLE
  (LAMBDA (TITLE)                                            (* ; "Edited 12-Jan-88 11:41 by smL")

    (if (AND TITLE (OR (STRINGP TITLE)
                       (LITATOM TITLE)))
        then (PACKFILENAME.STRING 'NAME (FILENAMEFIELD TITLE 'NAME)
                    'EXTENSION
                    (FILENAMEFIELD TITLE 'EXTENSION))
      else TITLE)))

(GRID-WINDOW
  (LAMBDA (W)                                                (* ; "Edited 14-Sep-87 10:14 by smL")

    (COND
       ((WINDOWP W)
        (WINDOWADDPROP W 'MOVEFN 'ICONW.MOVEFN)
        (\ENSURE.ICON.GRID W)))))
)

(RPAQ? ENFORCE.ICON.GRID NIL)

(RPAQ? ENFORCE.ICON.REGIONS NIL)

(RPAQ? ICON.SPACING '(5 . 5))

(RPAQ? ICON.SIZE '(85 . 85))

(RPAQ? GRID.OFFSET '(0 . 0))
(DECLARE%: DOEVAL@COMPILE DONTCOPY

(GLOBALVARS ENFORCE.ICON.GRID ICON.SPACING ICON.SIZE GRID.OFFSET)
)
(DECLARE%: DONTEVAL@LOAD DONTEVAL@COMPILE 
(XCL:REINSTALL-ADVICE 'ICONW :AFTER '((:LAST (GRID-WINDOW !VALUE))))
(XCL:REINSTALL-ADVICE 'TITLEDICONW :AFTER '((:LAST (GRID-WINDOW !VALUE))))
(READVISE ICONW TITLEDICONW)
)



(* ;;; "Defining some nice Viewpoint-ish icons")

(DECLARE%: DONTEVAL@LOAD DONTEVAL@COMPILE 

(RPAQQ MSGFOLDERICON #*(75 55)COOOON@@@@@@@@@@@@@@GOOOOO@@@@@@@@@@@@@@N@@@@CH@@@@@@@@@@@@@L@@@@AH@@@@@@@@@@@@@L@@@@AOOOOOOOOOOOOL@L@@@@AOOOOOOOOOOOOL@L@@@@@@@@@@@@@@@@@N@OOOOOOOOOOOOOOOOOON@L@@@@@@@@@@@@@@@@@F@LMJFG@@@@@@@@@@@ONF@LKNOJ@@@@@@@@@COHBF@L@@@@@@@@@@@@@@@HBF@LOFIJ@@@@@@@@@@@HBF@LCKGB@@@@@@@@@COHBF@L@@@@@@@@@@@@@@@HBF@LIMFJ@@@@@@@@@@@HBF@LMFMJ@@@@@@@@@COHBF@L@@@@@@@@@@@@@@@ONF@L@@@@@@@@@@@@@@@@@F@L@@@@@@@@@@@@@@@@@F@L@@@@@@@@@@@@@@@@@F@L@@@@@@@@@@@@@@@@@F@L@@@@@@@@@@@@@@@@@F@L@@@@@@@@@@@@@@@@@F@L@@@@@@@@@@@@@@@@@F@L@@@@@@@@@@@@@@@@@F@L@@@@@@@@@@@@@@@@@F@L@@@@@@@@@@@@@@@@@F@L@@@@@@@@@@@@@@@@@F@L@@@@@@@@@@@@@@@@@F@L@@@@@@@@@@@@@@@@@F@L@@@@@@@@@@@@@@@@@F@L@@@@@@@@@@@@@@@@@F@L@@@@@@@@@@@@@@@@@F@L@@@@@@@@@@@@@@@@@F@L@@@@@@@@@@@@@@@@@F@L@@@@@@@@@@@@@@@@@F@L@@@@@@@@@@@@@@@@@F@L@@@@@@@@@@@@@@@@@F@L@@@@@@@@@@@@@@@@@F@L@@@@@@@@@@@@@@@@@F@L@@@@@@@@@@@@@@@@@F@L@@@@@@@@@@@@@@@@@F@L@@@@@@@@@@@@@@@@@F@L@@@@@@@@@@@@@@@@@F@L@@@@@@@@@@@@@@@@@F@L@@@@@@@@@@@@@@@@@F@L@@@@@@@@@@@@@@@@@F@L@@@@@@@@@@@@@@@@@F@L@@@@@@@@@@@@@@@@@F@L@@@@@@@@@@@@@@@@@F@L@@@@@@@@@@@@@@@@@F@L@@@@@@@@@@@@@@@@@F@OOOOOOOOOOOOOOOOOON@OOOOOOOOOOOOOOOOOON@
)

(RPAQQ MSGFOLDERMASK #*(75 55)COOOON@@@@@@@@@@@@@@GOOOOO@@@@@@@@@@@@@@OOOOOOH@@@@@@@@@@@@@OOOOOOH@@@@@@@@@@@@@OOOOOOOOOOOOOOOOOOL@OOOOOOOOOOOOOOOOOOL@OOOOOOOOOOOOOOOOOON@OOOOOOOOOOOOOOOOOON@OOOOOOOOOOOOOOOOOON@OOOOOOOOOOOOOOOOOON@OOOOOOOOOOOOOOOOOON@OOOOOOOOOOOOOOOOOON@OOOOOOOOOOOOOOOOOON@OOOOOOOOOOOOOOOOOON@OOOOOOOOOOOOOOOOOON@OOOOOOOOOOOOOOOOOON@OOOOOOOOOOOOOOOOOON@OOOOOOOOOOOOOOOOOON@OOOOOOOOOOOOOOOOOON@OOOOOOOOOOOOOOOOOON@OOOOOOOOOOOOOOOOOON@OOOOOOOOOOOOOOOOOON@OOOOOOOOOOOOOOOOOON@OOOOOOOOOOOOOOOOOON@OOOOOOOOOOOOOOOOOON@OOOOOOOOOOOOOOOOOON@OOOOOOOOOOOOOOOOOON@OOOOOOOOOOOOOOOOOON@OOOOOOOOOOOOOOOOOON@OOOOOOOOOOOOOOOOOON@OOOOOOOOOOOOOOOOOON@OOOOOOOOOOOOOOOOOON@OOOOOOOOOOOOOOOOOON@OOOOOOOOOOOOOOOOOON@OOOOOOOOOOOOOOOOOON@OOOOOOOOOOOOOOOOOON@OOOOOOOOOOOOOOOOOON@OOOOOOOOOOOOOOOOOON@OOOOOOOOOOOOOOOOOON@OOOOOOOOOOOOOOOOOON@OOOOOOOOOOOOOOOOOON@OOOOOOOOOOOOOOOOOON@OOOOOOOOOOOOOOOOOON@OOOOOOOOOOOOOOOOOON@OOOOOOOOOOOOOOOOOON@OOOOOOOOOOOOOOOOOON@OOOOOOOOOOOOOOOOOON@OOOOOOOOOOOOOOOOOON@OOOOOOOOOOOOOOOOOON@OOOOOOOOOOOOOOOOOON@OOOOOOOOOOOOOOOOOON@OOOOOOOOOOOOOOOOOON@OOOOOOOOOOOOOOOOOON@OOOOOOOOOOOOOOOOOON@OOOOOOOOOOOOOOOOOON@
)

(RPAQ MSGFOLDERTEMPLATE (create TITLEDICON ICON ← MSGFOLDERICON MASK ← MSGFOLDERMASK TITLEREG ←
                               (CREATEREGION 5 2 65 35)))
)
(DECLARE%: DONTEVAL@LOAD DONTEVAL@COMPILE 
(if (GETD 'TEDIT)
    then
    (ADVISE '(TEXTSTREAM.TITLE IN \TEDIT.SHRINK.ICONCREATE) 'AFTER '(SETQ !VALUE (
                                                                                \TRIM-ICON-FILE-TITLE
                                                                                  !VALUE))))


(RPAQQ TEDIT.ICON #*(60 75)OOOOOOOOOOOO@@@@OOOOOOOOOOOOH@@@L@@@@@@@@@@AL@@@L@@@@@@@@@@AF@@@L@@@@@@@@@@AC@@@L@@@@@@@@@@AAH@@L@@CNGOCOONA@L@@L@@CNGOCOONA@F@@L@@@@@@@@@@A@C@@L@@@@@@@@@@A@AH@L@@@@@@@@@@A@@L@L@@@@@@@@@@A@@F@L@@@@@@@@@@AOOO@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@OOMNOOOMOGKHC@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@LGKNOOOGOOGOOHC@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@LFOONOOKOOMOOHC@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@LGNOOOL@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@OMOOOGOMOOOHC@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@LGOOMNOOONMOOHC@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@LGKOOOKNOONOOHC@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@LGNOOOMOOKONOHC@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@LGOMOOOGOOH@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@
)

(RPAQQ TEDIT.MASK #*(60 75)OOOOOOOOOOOO@@@@OOOOOOOOOOOOH@@@OOOOOOOOOOOOL@@@OOOOOOOOOOOON@@@OOOOOOOOOOOOO@@@OOOOOOOOOOOOOH@@OOOOOOOOOOOOOL@@OOOOOOOOOOOOON@@OOOOOOOOOOOOOO@@OOOOOOOOOOOOOOH@OOOOOOOOOOOOOOL@OOOOOOOOOOOOOON@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@
)

(RPAQ TEDIT.TITLED.ICON.TEMPLATE (create TITLEDICON ICON ← TEDIT.ICON MASK ← TEDIT.MASK TITLEREG ←
                                        (CREATEREGION 5 2 50 30)))
)
(DECLARE%: DONTEVAL@LOAD DONTEVAL@COMPILE 

(RPAQQ SEDITICON #*(60 75)OOOOOOOOOOOO@@@@OOOOOOOOOOOOH@@@L@@@@@@@@@@AL@@@L@@@@@@@@@@AF@@@LB@@@@@@@@@AC@@@LD@@@@@@@@@AAH@@LD@@@@@@@@@A@L@@LH@@@@@@@@@A@F@@LH@@@@@@@@@A@C@@LH@@@@@@@@@A@AH@LH@@@@@@@@@A@@L@LH@@@@@@@@@A@@F@LDDI@@@@@@@AOOO@LD@@@@@@@@@@@@C@LB@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@DC@L@@@@@@@@@@@@BC@L@@@@@@@@@@@@BC@L@@@@@@@@@@@@AC@L@@@@@@@@@@@@AC@L@@@@@@@@@@@@AC@L@@@@@@@@@@@@AC@L@@@@@@@@@@@@AC@L@@@@@@@@@@IBBC@L@@@@@@@@@@@@BC@L@@@@@@@@@@@@DC@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@
)

(RPAQQ SEDITICONMASK #*(60 75)OOOOOOOOOOOO@@@@OOOOOOOOOOOOH@@@OOOOOOOOOOOOL@@@OOOOOOOOOOOON@@@OOOOOOOOOOOOO@@@OOOOOOOOOOOOOH@@OOOOOOOOOOOOOL@@OOOOOOOOOOOOON@@OOOOOOOOOOOOOO@@OOOOOOOOOOOOOOH@OOOOOOOOOOOOOOL@OOOOOOOOOOOOOON@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@
)

(RPAQ \\titled.icon (create TITLEDICON ICON ← SEDITICON MASK ← SEDITICONMASK TITLEREG ←
                           (CREATEREGION 5 5 50 65)))
)
(DECLARE%: DONTEVAL@LOAD DONTEVAL@COMPILE 
(if (GETD 'SKETCH)
    then
    (ADVISE '(SKETCH.TITLE IN SK.SHRINK.ICONCREATE) 'AFTER '(SETQ !VALUE (\TRIM-ICON-FILE-TITLE
                                                                          !VALUE))))


(RPAQQ SKETCH.ICON #*(60 75)OOOOOOOOOOOO@@@@OOOOOOOOOOOOH@@@L@@@@@@@@@@AL@@@L@@@@@@@@@@AF@@@L@@@@@@@@@@AC@@@LAOOOOOOOH@AAH@@LA@@@@@@@H@A@L@@LA@@@H@@@H@A@F@@LA@L@H@@@H@A@C@@LA@B@NCBHH@A@AH@LA@N@IDI@H@A@@L@LAAB@IDI@H@A@@F@LA@N@NCBHH@AOOO@LA@@@@@@@H@@@@C@LAOOOOOOOH@@@@C@L@@@B@@@@@@@@@C@L@@@B@@@@@@@@@C@L@@@D@@@@@@@@@C@L@@@D@@@@@@@@@C@L@@@H@@@@@@@@@C@L@@@H@@@@@@@@@C@L@@@H@@@@@@@@@C@L@@@H@@@@@@@@@C@L@@@H@@@@@@@@@C@L@@@H@@@@@@@@@C@L@@@D@@@@@@@@@C@L@@@D@@@@@@@@@C@L@@@B@@@@AN@@@C@L@@@A@@@@FAH@@C@L@@@@H@@AH@F@@C@L@@@@F@DB@@A@@C@L@@@@ALBD@@@H@C@L@@@@@CMD@@@H@C@L@@@@@@CH@@@D@C@L@@@@@@FH@@@D@C@L@@@@@@I@@@@B@C@L@@@@@@A@@@@B@C@L@@@@@@A@@@@B@C@L@@@@@@A@@@@B@C@L@@@@@@@H@@@D@C@L@@@@@@@H@@@D@C@L@@@@@@@D@@@H@C@L@@@@@@@D@@@H@C@L@@@@@@@B@@A@@C@L@@@@@@@AH@F@@C@L@@@@@@@@FAH@@C@L@@@@@@@@AN@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@
)

(RPAQQ SKETCH.MASK #*(60 75)OOOOOOOOOOOO@@@@OOOOOOOOOOOOH@@@OOOOOOOOOOOOL@@@OOOOOOOOOOOON@@@OOOOOOOOOOOOO@@@OOOOOOOOOOOOOH@@OOOOOOOOOOOOOL@@OOOOOOOOOOOOON@@OOOOOOOOOOOOOO@@OOOOOOOOOOOOOOH@OOOOOOOOOOOOOOL@OOOOOOOOOOOOOON@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@
)

(RPAQ SKETCH.TITLED.ICON.TEMPLATE (create TITLEDICON ICON ← SKETCH.ICON MASK ← SKETCH.MASK TITLEREG ←
                                         (CREATEREGION 5 2 50 30)))
)
(DECLARE%: DONTEVAL@LOAD DONTEVAL@COMPILE 
(if (GETD 'SPY.BUTTON)
    then
    (ADVISE 'SPY.BUTTON 'AFTER '(GRID-WINDOW (OR !VALUE SPY.BUTTON))))
)



(* ;; "Define a nice icon for accessing the list of loaded files")

(DEFINEQ

(LOADED-FILES-ICON-WINDOW-BUTTONEVENTFN
  (CL:LAMBDA
   (W)                                                       (* ; "Edited 18-Jan-88 09:22 by smL")

   (DECLARE (GLOBALVARS FILELST))
   (LET ((NEW-FILE-ITEM "* New file *")
         (NOTICE-FILE-ITEM "* Sysloaded file *"))
        (CL:LABELS
         ((LOADED-FILES NIL "Return a sorted list of names of known loaded files" (SORT (COPY FILELST
                                                                                              )))
          (HIDDEN-FILES NIL "Return a sorted list of names of hidden loaded files"
                 (DECLARE (GLOBALVARS LOADEDFILELST))
                 (SORT (LDIFFERENCE (for FILE in LOADEDFILELST bind ROOT-NAME
                                       eachtime (SETQ ROOT-NAME (FILENAMEFIELD FILE 'NAME))
                                       until (EQ ROOT-NAME 'INIT) when (GET ROOT-NAME 'FILEDATES)
                                       collect ROOT-NAME)
                              FILELST)))
          (EDIT-FILECOMS (FILE-NAME)
                 "Edit the filecoms of a file"
                 (ED FILE-NAME '(FILES :DONTWAIT :DISPLAY)))
          (NOTICE-AND-EDIT-FILE (ITEM MENU BUTTON)
                 "Notice a file and then edit its filecoms"
                 (LET ((FILE (FILENAMEFIELD ITEM 'NAME)))
                      (COND
                         ((NULL FILE)
                          NIL)
                         ((NULL (NLSETQ (LOAD FILE 'PROP)))
                          (PROMPTPRINT "Error attempting to Notice the file " FILE))
                         (T (EDIT-FILECOMS FILE)))))
          (PRINT-FILE-MENU-HELP (ITEM MENU BUTTON)
                 (COND
                    ((NULL ITEM)
                     NIL)
                    ((EQ ITEM NEW-FILE-ITEM)
                     (PROMPTPRINT "Add a new file and edit its filecoms"))
                    ((EQ ITEM NOTICE-FILE-ITEM)
                     (PROMPTPRINT 
                       "Prompt for a sysloaded file, Notice its contents, and then edit its filecoms"
                            ))
                    (T (PROMPTPRINT "Edit the filecoms of file " ITEM))))
          (MENU-ITEM-SELECTED
           (ITEM MENU BUTTON)
           (COND
              ((NULL ITEM)
               NIL)
              ((EQ ITEM NEW-FILE-ITEM)
               (LET ((FILE-NAME (PROGN (CLEARW PROMPTWINDOW)
                                       (PROMPTFORWORD "Name of new file (CR to abort): " NIL NIL 
                                              PROMPTWINDOW NIL T (LIST (CHARCODE EOL))))))
                    (if FILE-NAME
                        then (SETQ FILE-NAME (U-CASE (MKATOM FILE-NAME)))
                             (SET (FILECOMS FILE-NAME)
                                  `((,COMMENTFLG ;;; ,(CONCAT "New file"))
                                    (DECLARE%: DONTCOPY (PROPS (,FILE-NAME MAKEFILE-ENVIRONMENT)
                                                               (,FILE-NAME FILETYPE)))))
                             (PUTPROP FILE-NAME 'MAKEFILE-ENVIRONMENT (CL:COPY-TREE 
                                                                       *DEFAULT-MAKEFILE-ENVIRONMENT*
                                                                             ))
                             (PUTPROP FILE-NAME 'FILETYPE (SELECTQ *DEFAULT-CLEANUP-COMPILER*
                                                              (TCOMPL :TCOMPL)
                                                              (BCOMPL :BCOMPL)
                                                              :COMPILE-FILE))
                             (ADDFILE FILE-NAME)
                             (EDIT-FILECOMS FILE-NAME)
                      else (PROMPTPRINT "No file added"))))
              ((EQ ITEM NOTICE-FILE-ITEM)
               (LET ((HIDDEN-FILES (HIDDEN-FILES)))
                    (IF HIDDEN-FILES
                        then (MENU (create MENU
                                          ITEMS ← HIDDEN-FILES
                                          TITLE ← "Notice which sysloaded file?"
                                          WHENHELDFN ← #'(LAMBDA (ITEM MENU BUTTON)
                                                           (COND
                                                              (ITEM (PROMPTPRINT 
                                                                           "Load-PROP the file " ITEM 
                                                                           " and then edit its COMS")
                                                                    )))
                                          WHENSELECTEDFN ← #'NOTICE-AND-EDIT-FILE))
                      else (PROMPTPRINT "No hidden files"))))
              (T (EDIT-FILECOMS (FILENAMEFIELD ITEM 'NAME))))))
         (COND
            ((MOUSESTATE LEFT)
             (MOVEW W))
            ((MOUSESTATE MIDDLE)
             (MENU (create MENU
                          ITEMS ← `(,.(LOADED-FILES) ,NEW-FILE-ITEM ,NOTICE-FILE-ITEM)
                          TITLE ← "Edit COMS of which file?"
                          WHENHELDFN ← #'PRINT-FILE-MENU-HELP
                          WHENSELECTEDFN ← #'MENU-ITEM-SELECTED))))))))
)
(DECLARE%: DONTEVAL@LOAD DONTEVAL@COMPILE 

(RPAQQ LOADED-FILES-ICON #*(72 72)@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OOOOOOOOOOOOOOOH@@@AOOOOOOOOOOOOOOOL@@@COOOOOOOOOOOOOOON@@@CL@@@@@@@@@@@@@AN@@@CHA@B@@@@@@@@@@@N@@@CHB@DCNDDG@@@@@@N@@@CHB@DB@FDHH@@@@@N@@@CHD@HB@FDHH@@@@@N@@@CHD@HCLEDF@@@@@@N@@@CHD@HB@EDA@@@@@@N@@@CHD@HB@DLHH@@@@@N@@@CHD@HB@DLHH@@@@@N@@@CHB@DB@DDG@D@HA@N@@@CHB@D@@@@@@@@@@@N@@@CHA@B@@@@@@@@@@@N@@@CH@@@@@@@@@@@@@@N@@@CH@@@@@@@@@@@@@@N@@@CHAOOOOOOOO@@@@@N@@@CHAOOOOOOOO@@@@@N@@@CHAH@@@@@@C@@@@@N@@@CHAH@@@@@@C@@@@@N@@@CHAOOOOOOOO@@@@@N@@@CHAL@@@@@@G@@@@@N@@@CH@N@@@@@@N@@@@@N@@@CH@G@@@@@AL@@@@@N@@@CH@CH@@@@CH@@@@@N@@@CH@AL@@@@G@@@@@@N@@@CH@@N@@@@N@@@@@@N@@@CH@@G@@@AL@@@@@@N@@@CH@@CH@@CH@@@@@@N@@@CH@@AL@@G@@@@@@@N@@@CH@@@N@@N@@@@@@@N@@@CH@@@G@AL@@@@@@@N@@@CH@@@CHCH@@@@@@@N@@@CH@@@ALG@@@@@@@@N@@@CH@@@@LF@@@@@@@@N@@@CH@@@@LF@@@@@@@@N@@@CH@@@@LF@@@@@@@@N@@@CH@@@@LF@@@@@@@@N@@@CH@@@@LF@@@@@@@@N@@@CH@@@@LF@@@@@@@@N@@@CH@@@@ON@@@@@@@@N@@@CH@@@@GL@@@@@@@@N@@@CH@@@@@@@@@@@@@@N@@@CH@@@@@@@@@@@@@@N@@@CH@@@@@@@@@@@@@@N@@@CH@@@@@@@@@@@@@@N@@@CH@@@@@@@@@@@@@@N@@@CH@@@@@@@@@@@@@@N@@@CH@@@@@@@@@@@@@@N@@@CH@@@@@@@@@@@@@@N@@@CH@@@@@@@@@@@@@@N@@@CH@@@@@@@@@@@@@@N@@@CH@@@@@@@@@@@@@@N@@@CH@@@@@@@@@@@@@@N@@@CH@@@@@@@@@@@@@@N@@@CH@@@@@@@@@@@@@@N@@@CH@@@@@@@@@@@@@@N@@@CH@@@@@@@@@@@@@@N@@@CH@@@@@@@@@@@@@@N@@@CL@@@@@@@@@@@@@AN@@@COOOOOOOOOOOOOOON@@@AOOOOOOOOOOOOOOOL@@@@OOOOOOOOOOOOOOOH@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
)

(RPAQQ LOADED-FILES-ICON-MASK #*(72 72)@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OOOOOOOOOOOOOOOH@@@AOOOOOOOOOOOOOOOL@@@COOOOOOOOOOOOOOON@@@COOOOOOOOOOOOOOON@@@COOOOOOOOOOOOOOON@@@COOOOOOOOOOOOOOON@@@COOOOOOOOOOOOOOON@@@COOOOOOOOOOOOOOON@@@COOOOOOOOOOOOOOON@@@COOOOOOOOOOOOOOON@@@COOOOOOOOOOOOOOON@@@COOOOOOOOOOOOOOON@@@COOOOOOOOOOOOOOON@@@COOOOOOOOOOOOOOON@@@COOOOOOOOOOOOOOON@@@COOOOOOOOOOOOOOON@@@COOOOOOOOOOOOOOON@@@COOOOOOOOOOOOOOON@@@COOOOOOOOOOOOOOON@@@COOOOOOOOOOOOOOON@@@COOOOOOOOOOOOOOON@@@COOOOOOOOOOOOOOON@@@COOOOOOOOOOOOOOON@@@COOOOOOOOOOOOOOON@@@COOOOOOOOOOOOOOON@@@COOOOOOOOOOOOOOON@@@COOOOOOOOOOOOOOON@@@COOOOOOOOOOOOOOON@@@COOOOOOOOOOOOOOON@@@COOOOOOOOOOOOOOON@@@COOOOOOOOOOOOOOON@@@COOOOOOOOOOOOOOON@@@COOOOOOOOOOOOOOON@@@COOOOOOOOOOOOOOON@@@COOOOOOOOOOOOOOON@@@COOOOOOOOOOOOOOON@@@COOOOOOOOOOOOOOON@@@COOOOOOOOOOOOOOON@@@COOOOOOOOOOOOOOON@@@COOOOOOOOOOOOOOON@@@COOOOOOOOOOOOOOON@@@COOOOOOOOOOOOOOON@@@COOOOOOOOOOOOOOON@@@COOOOOOOOOOOOOOON@@@COOOOOOOOOOOOOOON@@@COOOOOOOOOOOOOOON@@@COOOOOOOOOOOOOOON@@@COOOOOOOOOOOOOOON@@@COOOOOOOOOOOOOOON@@@COOOOOOOOOOOOOOON@@@COOOOOOOOOOOOOOON@@@COOOOOOOOOOOOOOON@@@COOOOOOOOOOOOOOON@@@COOOOOOOOOOOOOOON@@@COOOOOOOOOOOOOOON@@@COOOOOOOOOOOOOOON@@@COOOOOOOOOOOOOOON@@@COOOOOOOOOOOOOOON@@@COOOOOOOOOOOOOOON@@@COOOOOOOOOOOOOOON@@@COOOOOOOOOOOOOOON@@@COOOOOOOOOOOOOOON@@@AOOOOOOOOOOOOOOOL@@@@OOOOOOOOOOOOOOOH@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
)

(RPAQ LOADED-FILES-ICON-WINDOW 
      (LET ((W (TITLEDICONW (create TITLEDICON ICON ← LOADED-FILES-ICON MASK ← LOADED-FILES-ICON-MASK 
                                   TITLEREG ← (CREATEREGION 7 9 55 10))
                      "Lisp files" NIL (CREATEPOSITION 0 0)
                      T
                      'BOTTOM)))
           (WINDOWPROP W 'BUTTONEVENTFN 'LOADED-FILES-ICON-WINDOW-BUTTONEVENTFN)
           W))
)
(DECLARE%: DONTEVAL@LOAD DONTEVAL@COMPILE 

(RPAQQ STANDARD-ICON #*(60 75)OOOOOOOOOOOO@@@@OOOOOOOOOOOOH@@@L@@@@@@@@@@AL@@@L@@@@@@@@@@AF@@@L@@@@@@@@@@AC@@@L@@@@@@@@@@AAH@@L@@@@@@@@@@A@L@@L@@@@@@@@@@A@F@@L@@@@@@@@@@A@C@@L@@@@@@@@@@A@AH@L@@@@@@@@@@A@@L@L@@@@@@@@@@A@@F@L@@@@@@@@@@AOOO@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@L@@@@@@@@@@@@@C@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@
)

(RPAQQ STANDARD-ICON-MASK #*(60 75)OOOOOOOOOOOO@@@@OOOOOOOOOOOOH@@@OOOOOOOOOOOOL@@@OOOOOOOOOOOON@@@OOOOOOOOOOOOO@@@OOOOOOOOOOOOOH@@OOOOOOOOOOOOOL@@OOOOOOOOOOOOON@@OOOOOOOOOOOOOO@@OOOOOOOOOOOOOOH@OOOOOOOOOOOOOOL@OOOOOOOOOOOOOON@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@OOOOOOOOOOOOOOO@
)

(RPAQ DEFAULTTEXTICON (create TITLEDICON ICON ← STANDARD-ICON MASK ← STANDARD-ICON-MASK TITLEREG ←
                             (CREATEREGION 5 5 50 60)))

(RPAQQ DEFAULTICONFN TEXTICON)
)



(* ;;; "")




(* ;;; "Filemanager stuff")

(DECLARE%: DONTCOPY 

(PUTPROPS GRID-ICONS MAKEFILE-ENVIRONMENT (:PACKAGE "IL" :READTABLE "INTERLISP"))
)
(DECLARE%: DONTEVAL@LOAD DOEVAL@COMPILE DONTCOPY COMPILERVARS 

(ADDTOVAR NLAMA )

(ADDTOVAR NLAML )

(ADDTOVAR LAMA LOADED-FILES-ICON-WINDOW-BUTTONEVENTFN)
)
(PRETTYCOMPRINT GRID-ICONSCOMS)

(RPAQQ GRID-ICONSCOMS 
       (

(* ;;; "For laying out icons on a grid")

        (FNS ICONW.MOVEFN \ENSURE.ICON.GRID \TRIM-ICON-FILE-TITLE GRID-WINDOW)
        (INITVARS (ENFORCE.ICON.GRID NIL)
               (ENFORCE.ICON.REGIONS NIL)
               (ICON.SPACING '(5 . 5))
               (ICON.SIZE '(85 . 85))
               (GRID.OFFSET '(0 . 0)))
        (GLOBALVARS ENFORCE.ICON.GRID ICON.SPACING ICON.SIZE GRID.OFFSET)
        (DECLARE%: DONTEVAL@LOAD DONTEVAL@COMPILE (ADVISE ICONW TITLEDICONW))
        

(* ;;; "Defining some nice Viewpoint-ish icons")

        (DECLARE%: DONTEVAL@LOAD DONTEVAL@COMPILE 
          
          (* ;; "Redefine the Lafite folder icon, making them a bit smaller")

               (VARS MSGFOLDERICON MSGFOLDERMASK
                     (MSGFOLDERTEMPLATE (create TITLEDICON ICON ← MSGFOLDERICON MASK ← MSGFOLDERMASK 
                                               TITLEREG ← (CREATEREGION 5 2 65 35)))))
        (DECLARE%: DONTEVAL@LOAD DONTEVAL@COMPILE 
          
          (* ;; "Redefine the Tedit icon, making it cuter and smaller")

               (P (if (GETD 'TEDIT)
                      then
                      (ADVISE '(TEXTSTREAM.TITLE IN \TEDIT.SHRINK.ICONCREATE) 'AFTER
                             '(SETQ !VALUE (\TRIM-ICON-FILE-TITLE !VALUE)))))
               (VARS TEDIT.ICON TEDIT.MASK (TEDIT.TITLED.ICON.TEMPLATE (create TITLEDICON ICON ← 
                                                                              TEDIT.ICON MASK ← 
                                                                              TEDIT.MASK TITLEREG ←
                                                                              (CREATEREGION 5 2 50 30
                                                                                     )))))
        (DECLARE%: DONTEVAL@LOAD DONTEVAL@COMPILE 
          
          (* ;; "Redefine the SEdit icon, making it smaller and cuter")

               (VARS SEDITICON SEDITICONMASK
                     (\\titled.icon (create TITLEDICON ICON ← SEDITICON MASK ← SEDITICONMASK TITLEREG 
                                           ← (CREATEREGION 5 5 50 65)))))
        (DECLARE%: DONTEVAL@LOAD DONTEVAL@COMPILE 
          
          (* ;; "Redefine the Sketch icon, making it cuter and smaller")

               (P (if (GETD 'SKETCH)
                      then
                      (ADVISE '(SKETCH.TITLE IN SK.SHRINK.ICONCREATE) 'AFTER '(SETQ !VALUE
                                                                                    (
                                                                                \TRIM-ICON-FILE-TITLE
                                                                                     !VALUE)))))
               (VARS SKETCH.ICON SKETCH.MASK
                     (SKETCH.TITLED.ICON.TEMPLATE (create TITLEDICON ICON ← SKETCH.ICON MASK ← 
                                                         SKETCH.MASK TITLEREG ←
                                                         (CREATEREGION 5 2 50 30)))))
        (DECLARE%: DONTEVAL@LOAD DONTEVAL@COMPILE 
          
          (* ;; "Make SPY icons appear on the grid")

               (P (if (GETD 'SPY.BUTTON)
                      then
                      (ADVISE 'SPY.BUTTON 'AFTER '(GRID-WINDOW (OR !VALUE SPY.BUTTON))))))
        (COMS 
          
          (* ;; "Define a nice icon for accessing the list of loaded files")

              (FNS LOADED-FILES-ICON-WINDOW-BUTTONEVENTFN)
              (DECLARE%: DONTEVAL@LOAD DONTEVAL@COMPILE
                     (VARS LOADED-FILES-ICON LOADED-FILES-ICON-MASK
                           (LOADED-FILES-ICON-WINDOW (LET ((W (TITLEDICONW (create TITLEDICON ICON ← 
                                                                                  LOADED-FILES-ICON 
                                                                                  MASK ← 
                                                                               LOADED-FILES-ICON-MASK 
                                                                                  TITLEREG ←
                                                                                  (CREATEREGION
                                                                                   7 9 55 10))
                                                                     "Lisp files" NIL
                                                                     (CREATEPOSITION 0 0)
                                                                     T
                                                                     'BOTTOM)))
                                                          (WINDOWPROP W 'BUTTONEVENTFN '
                                                               LOADED-FILES-ICON-WINDOW-BUTTONEVENTFN
                                                                 )
                                                          W)))))
        (DECLARE%: DONTEVAL@LOAD DONTEVAL@COMPILE 
          
          (* ;; "Define the standard icon, using the new Lyric feature")

               (VARS STANDARD-ICON STANDARD-ICON-MASK
                     (DEFAULTTEXTICON (create TITLEDICON ICON ← STANDARD-ICON MASK ← 
                                             STANDARD-ICON-MASK TITLEREG ← (CREATEREGION 5 5 50 60)))
                     (DEFAULTICONFN 'TEXTICON)))
        

(* ;;; "")

        

(* ;;; "Filemanager stuff")

        (DECLARE%: DONTCOPY (PROP MAKEFILE-ENVIRONMENT GRID-ICONS))
        (DECLARE%: DONTEVAL@LOAD DOEVAL@COMPILE DONTCOPY COMPILERVARS (ADDVARS (NLAMA)
                                                                             (NLAML)
                                                                             (LAMA)))))
(DECLARE%: DONTEVAL@LOAD DOEVAL@COMPILE DONTCOPY COMPILERVARS 

(ADDTOVAR NLAMA )

(ADDTOVAR NLAML )

(ADDTOVAR LAMA )
)
(PUTPROPS GRID-ICONS COPYRIGHT ("Xerox Corporation" 1987 1988))
(DECLARE%: DONTCOPY
  (FILEMAP (NIL (6416 11320 (ICONW.MOVEFN 6426 . 10286) (\ENSURE.ICON.GRID 10288 . 10715) (
\TRIM-ICON-FILE-TITLE 10717 . 11092) (GRID-WINDOW 11094 . 11318)) (23061 28280 (
LOADED-FILES-ICON-WINDOW-BUTTONEVENTFN 23071 . 28278)))))
STOP