envos BACKGROUNDIMAGES 2 4 1 BACKGROUNDIMAGES 1 4 By: Burwell (Burwell.pa@Xerox.com) Accessory files: Background-DurerCat.bitmap Background-Parc.press Background-Rhine.press Background-Steinheim.press Background-TwoDollar.press BackgroundMenu.dfasl BitMapFns.lcom This document last edited on September 8, 1988. INTRODUCTION BackgroundImages is a module which makes it easy to apply graphically interesting static images to the background of one's Lisp screen. To use the package in the simplest way, load it and call (BACKGROUND.SETUP) [Function] This will put an entry called "Background" on your background menu (in a manner compatible with the module BACKGROUNDMENU), so that it will look something like this: UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU_UUUUUUUUUUUUUUUUUU_UUUUUUUUUUUUUUUUUU_1 }ݻUUUUUUUUUUUUUUUUUU_ }ͿUUUUUUUUUUUUUUUUUU_ݻ~UUUUUUUUUUUUUUUUUU_UUUUUUUUUUUUUUUUUUXUUUUUUUUUUUUUUUUUUX|BUUUUUUUUUUUUUUUUUUXB8BD@UUUUUUUUUUUUUUUUUUX|@dUUUUUUUUUUUUUUUUUUX@D@@:UUUUUUUUUUUUUUUUUUXUUUUUUUUUUUUUUUUUUXUUUUUUUUUUUUUUUUUUXUUUUUUUUUUUUUUUUUUX\8bDUUUUUUUUUUUUUUUUUUXB|B@UUUUUUUUUUUUUUUUUUXBDB8UUUUUUUUUUUUUUUUUUXUUUUUUUUUUUUUUUUUUXUUUUUUUUUUUUUUUUUUX|@@UUUUUUUUUUUUUUUUUUXqpYxDIfFUUUUUUUUUUUUUUUUUUXG DED DFUUUUUUUUUUUUUUUUUUXDI DE|3 DFUUUUUUUUUUUUUUUUUUXUUUUUUUUUUUUUUUUUUX UUUUUUUUUUUUUUUUUUX?p@UUUUUUUUUUUUUUUUUUX/󋈀$DLHUUUUUUUUUUUUUUUUUUX$AE$FHEUUUUUUUUUUU_$DHB$CBWx{ WGX;vvW~{X$q㻋L;<^{6$Wݷs+۝_{{vx$qex߯{{޿{#!$Wfߗ{{U!!!$9nݻs{ۛ۞U!!!$Wc|<[]"!#!${"$uWHV<:8 BFDVV RBB|UUUUUUUUqpŀRBB@FV2&"BFDUUUUUUUU9r"<:8V UUUUUUUUD 2$VDuUUUUUUUUVUUUUUUUUHV UUUUUUUUb HVbCUUUUUUUU,b8PHLV3"DHHUUUUUUUU""8PGNV""UUUUUUUU"!DV!8UUUUUUUU V UUUUUUUUUUUUUUU V UUUUUUUUUUUUUUU?  V  UUUUUUUUUUUUUUU xJV  UUUUUUUUUUUUUUU"? JV>  UUUUUUUUUUUUUUUA   VA  UUUUUUUUUUUUUUU V UUUUUUUUUUUUUUU V UUUUUUUUUUUUUUU~ VA UUUUUUUUUUUUUUU A,8q` V"~5 D UUUUUUUUUUUUUUU >A!8 V A! UUUUUUUUUUUUUUU "A!DD V ~ D8q UUUUUUUUUUUUUUU V UUUUUUUUUUUUUUU V UUUUUUUUUUUUUUU V  UUUUUUUUUUUUUUU( V( UUUUUUUUUUUUUUUD V| UUUUUUUUUUUUUUU  V UUUUUUUUUUUUUUU V UUUUUUUUUUUUUUU V UUUUUUUUUUUUUUU@ V@UUUUUUUUUUUUUUU:GJVFHUUUUUUUUUUUUUUUBOJVBHUUUUUUUUUUUUUUUFH V:G UUUUUUUUUUUUUUU V UUUUUUUUUUUUUUU V UUUUUUUUUUUUUUU V UUUUUUUUUUUUUUUq" V"" UUUUUUUUUUUUUUU8BR VȢBR UUUUUUUUUUUUUUUB " VtA" UUUUUUUUUUUUUUU V UUUUUUUUUUUUUUU V UUUUUUUUUUUUUUU| V UUUUUUUUUUUUUUU\8 VxbD UUUUUUUUUUUUUUUB VBd UUUUUUUUUUUUUUUBD V|B: UUUUUUUUUUUUUUU V UUUUUUUUUUUUUUU V UUUUUUUUUUUUUUU  V UUUUUUUUUUUUUUU , JV?5 UUUUUUUUUUUUUUU ! @JV ! @UUUUUUUUUUUUUUU ! V  UUUUUUUUUUUUUUU V UUUUUUUUUUUUUUU V UUUUUUUUUUUUUUU V!UUUUUUUUUUUUUUUP@JV @UUUUUUUUUUUUUUU @JVP@UUUUUUUUUUUUUUU! V UUUUUUUUUUUUUUU V UUUUUUUUUUUUUUU If (as shown) you select one of the subitems of "Background>Change, " your background will be painted with the image whose name you selected. The background images currently available are DurerCats: a reflected picture of a cat from an engraving by Albrecht Durer Parc: a picture of the Xerox Palo Alto Research Center Rhine: a picture of a village on the Rhine river Steinheim: a picture of a relatively unfortified castle TwoDollar: a picture of part of a two dollar bill If the image you select is a different size than your screen, you may want to control how the image is applied. There are three different image painting modes: "Center," which centers the image on the screen and paints gray in the remaining space; "Tile," which tiles the screen with the image; and "Reflect," which tiles the screen with edge-matched reflections of the image. (This last mode is particularly effective with the DurerCats image.) To change the mode, select one of the subitems of "Background>Mode." To the currently set mode, just select "Background>Mode" itself. Note that once you have changed the mode, to see its effect, you must reapply the background image (by selecting "Background>Change>ImageName"). If you want a less busy background, you can use a plain gray. To apply it, just select "Background." To change the shade of gray, select "Background>Shade." Again, to see the effect of the shade change, you must reapply the background shade (by selecting "Background"). DETAILS Background images to be used with this module must be represented in files that can be read by either HREAD or READPRESS. For convenience, they should be named according to the conventions mentioned below under BACKGROUND.FILES. BackgroundImages does take some pains to reduce user wait time. First, it is very lazy about file interactions, and defers them until it is quite clear they cannot be avoided. And second, when one selects a background, it is cached so that changing back to it will be significantly faster than fetching it the first time. Since the cached background bitmaps consume quite a bit of space, they can be removed by the GAINSPACE mechanism. The public interface to this package, more fully described, is as follows: (BACKGROUND.SETUP NAMES) [Function] Puts an entry on the background menu which enables users to change backgrounds easily. The entry will be labeled "Backgrounds" and if invoked will turn the screen background gray. The entry will have several subitems, each labeled with the name of the background image it will, if selected, put on the screen. The argument NAMES is meant to specify the names of the images; it must be a list either of dotted pairs (whose CAR is the name of an image and whose CDR is the name of the file in which a representation of that image can be found) or of atoms (each of which is the name of an image). If NAMES is NIL, BACKGROUND.SETUP will call (BACKGROUND.FILES) to generate a set of background image names. (BACKGROUND.FILES WHICH) [Function] Returns a list of dotted pairs whose CAR is the name of an image and whose CDR is the name of the file in which a representation of that image can be found. Generates this list by looking on LISPUSERSDIRECTORIES for files of the form "background-*.bitmap" or "background-*.press"; all such files are taken to be representations of background images. Image representation files that are not named and located according to this convention will have to be specified directly to BACKGROUND.SETUP. If WHICH is T, it will search all the LISPUSERSDIRECTORIES; otherwise it will search till it finds the first directory with background images in it. (BACKGROUND.FETCH NAME FILENAME MODE) [Function] Causes the image whose name is NAME, and for which there is a representation in file FILENAME, to be applied to the screen background. It is this function which the background menu subitems call to apply new images. If FILENAME is not specified, BACKGROUND.FETCH will attempt to find an image representation file whose name is either "background-NAME.bitmap" or "background-NAME.press" on any of the LISPUSERSDIRECTORIES. MODE specifies how the image will be applied to the background if it is a different size than the screen. MODE should be one of the atoms CENTER, TILE, or REFLECT; it defaults to CENTER. CENTER causes the image to be centered with a white border around it; TILE causes the image to tile the screen; and REFLECT causes the image to tile the screen such that each tile is a reflection of those adjacent to it. (BACKGROUND.MODE MODE) [Function] Sets and accesses the mode (as described above) which will be passed to BACKGROUND.FETCH when the latter is invoked from the background menu subitems. MODE, if provided, gives the new mode setting. Returns the previous mode setting. (BACKGROUND.SHADE NEWSHADE) [Function] Changes the default background shade. (BACKGROUND.CENTER BITMAP) [Function] Returns a screen-sized bitmap with BITMAP centered in it with a border colored with the default background shade. (BACKGROUND.TILE BITMAP) [Function] Returns a screen-sized bitmap that is tiled with BITMAP with one of the tiles centered. (BACKGROUND.REFECT BITMAP) [Function] Returns a screen-sized tiled bitmap such that each tile is a reflection of those adjacent to it and such that the center tile is a copy of BITMAP. (LIST ((PAGE NIL (PAPERSIZE Letter FOLIOINFO (ARABIC "" "") STARTINGPAGE# 20) (0 0 612 792) ((FOLIO NIL (PARALOOKS (QUAD CENTERED) CHARLOOKS (SUPERSCRIPT 0 INVISIBLE OFF SELECTPOINT OFF PROTECTED OFF SIZE 10 FAMILY MODERN OVERLINE OFF STRIKEOUT OFF UNDERLINE OFF EXPANSION REGULAR SLOPE REGULAR WEIGHT MEDIUM INVERTED OFF USERINFO NIL STYLE NIL) FORMATINFO (ARABIC "" "")) (174 36 288 36) NIL) (HEADING NIL (HEADINGTYPE RUNNINGHEAD) (84 744 528 36) NIL) (TEXT NIL NIL (84 96 456 600) NIL))) (PAGE NIL (PAPERSIZE Letter FOLIOINFO (ARABIC "" "")) (0 0 612 792) ((FOLIO NIL (PARALOOKS (QUAD CENTERED) CHARLOOKS (SUPERSCRIPT 0 INVISIBLE OFF SELECTPOINT OFF PROTECTED OFF SIZE 10 FAMILY MODERN OVERLINE OFF STRIKEOUT OFF UNDERLINE OFF EXPANSION REGULAR SLOPE REGULAR WEIGHT MEDIUM INVERTED OFF USERINFO NIL STYLE NIL) FORMATINFO (ARABIC "" "")) (174 36 288 36) NIL) (HEADING NIL (HEADINGTYPE RUNNINGHEAD) (84 744 528 36) NIL) (TEXT NIL NIL (84 96 456 600) NIL))) (PAGE NIL (PAPERSIZE Letter FOLIOINFO (ARABIC "" "")) (0 0 612 792) ((FOLIO NIL (PARALOOKS (QUAD CENTERED) CHARLOOKS (SUPERSCRIPT 0 INVISIBLE OFF SELECTPOINT OFF PROTECTED OFF SIZE 10 FAMILY MODERN OVERLINE OFF STRIKEOUT OFF UNDERLINE OFF EXPANSION REGULAR SLOPE REGULAR WEIGHT MEDIUM INVERTED OFF USERINFO NIL STYLE NIL) FORMATINFO (ARABIC "" "")) (174 36 288 36) NIL) (HEADING NIL (HEADINGTYPE RUNNINGHEAD) (84 744 528 36) NIL) (TEXT NIL NIL (84 96 456 600) NIL))))) ,3T3T25,, , ,,8,8H PAGEHEADING RUNNINGHEAD CLASSICCLASSICCLASSIC HELVETICA MODERN MODERN MODERN MODERNMODERN    HRULE.GETFNMODERN   HRULE.GETFNMODERN   HRULE.GETFNMODERN    HRULE.GETFNMODERN   HRULE.GETFNMODERN  $ /  BMOBJ.GETFN3 HELVETICA K1g K      \      '  r  X  -z