(FILECREATED "20-Nov-84 13:49:52" {AZTEC}<TRILLIUM>BIRTHDAY84>RERELEASE>COMPOSITE-ITEMTYPES.;3 92197 changes to: (ITEMTYPES CASCADE.INDICATOR) previous date: "19-Nov-84 16:33:22" {AZTEC}<TRILLIUM>BIRTHDAY84>RERELEASE>COMPOSITE-ITEMTYPES.;2 ) (PRETTYCOMPRINT COMPOSITE-ITEMTYPESCOMS) (RPAQQ COMPOSITE-ITEMTYPESCOMS [(ITEMTYPES BACKLIT.BUTTON BACKLIT.BUTTON.SPECIAL.FEATURE BLOCK.OF.TEXT BUTTON C+SQ CAPTION CASCADE CASCADE.BUTTON CASCADE.INDICATOR CASCADE.LIGHT CASCADE.UP.DOWN.BUTTONS CHANGE.FRAME.BUTTON COMPUTER EXTERNAL.BUTTON GENERAL.BUTTON HORIZONTAL.BUTTONS ICONIC.BUTTON ICONIC.INDICATOR INVERTING.CASCADE INVERTING.CASCADE.LIGHT INVERTING.CASCADE.TWO.BUTTONS INVERTING.ICONIC.CASCADE.TWO.BUTTONS LINE.OF.TEXT NUMBER.BUTTON NUMBER.BUTTON.ADD.CELL NUMBER.BUTTON.ADD.VALUE NUMBER.BUTTON.NEXT.DIGIT NUMBER.PAD OFFPAGE.BUTTON PRIVATE.DATA.STAMP SEGMENT.LINE SENSITIVE.REGION.CHANGE.FRAME SET.OF.ICONIC.BUTTONS SET.OF.LABELLED.BACKLIT.BUTTONS SET.OF.NUMBER.BUTTONS TOUCH.AREA UP.DOWN.BUTTONS VALUE.BAR VERTICAL.BUTTONS VERTICAL.BUTTONS.SPECIAL.FEATURE) (P (COMPILE.INTERNAL.FNS.IF.NECESSARY)) (PROP FILETYPE COMPOSITE-ITEMTYPES) (DECLARE: DONTEVAL@LOAD DOEVAL@COMPILE DONTCOPY COMPILERVARS (ADDVARS (NLAMA) (NLAML ACTON.CASCADE.BUTTON ACTON.BACKLIT.BUTTON.SPECIAL.FEATURE) (LAMA]) (READ.ITEMTYPE BACKLIT.BUTTON 5) (\TYPE ITEM.TYPE NAME BACKLIT.BUTTON COMMENT "A general button" KIND COMPOSITE PARAMETERS ((\TYPE PARAMETER NAME PLACEMENT TYPE (POSITION) DEFAULT (170 . 170) COMMENT "The grid position of the lower left corner of the button" GRID.TYPE (LOCATION)) (\TYPE PARAMETER NAME PICTURE TYPE (BITMAP.NAME) DEFAULT SIMPLE.BUTTON.BITMAP COMMENT "The artwork for the button") (\TYPE PARAMETER NAME TEXT TYPE (LIST (STRING)) DEFAULT (Button Label) COMMENT "The words associated with the button") (\TYPE PARAMETER NAME TEXT.OFFSET TYPE (OFFSET.VECTOR ( PLACEMENT)) DEFAULT (17 . 17) COMMENT "The offset of the words form the lower left corner of the button") (\TYPE PARAMETER NAME HORIZONTAL.ALIGNMENT TYPE (ONEOF (LEFT CENTER RIGHT)) DEFAULT CENTER COMMENT "Horizontal alignment of text about reference point") (\TYPE PARAMETER NAME FONT TYPE (FONT) DEFAULT NIL COMMENT "Font in which to print the label") (\TYPE PARAMETER NAME VERTICAL.ALIGNMENT TYPE ( ONEOF (TOP CENTER BOTTOM)) DEFAULT CENTER COMMENT "Vertical alignment of text about the reference point") (\TYPE PARAMETER NAME CELL TYPE (CELL) DEFAULT CELL.1 COMMENT "The cell to affect and display") (\TYPE PARAMETER NAME VALUE TYPE (CONSTANT ) DEFAULT VALUE.1 COMMENT "The value to be set and reflected")) SUBITEM.SPECS ((LABEL BUTTON (ITEM PICTURE (PLACEMENT (PTRANSLATE PLACEMENT (NEW.POSITION (MINUS BUTTON.BITMAP.EXTRA) 0))) (BITMAP PICTURE))) (ITEM SENSITIVE.REGION (PLACEMENT (BOUNDING.BOX BUTTON)) (ACTION.FORM (LIST (QUOTE CHANGE.CELL) CELL (KWOTE VALUE)))) (ITEM BLOCK.OF.TEXT (PLACEMENT (PTRANSLATE PLACEMENT TEXT.OFFSET)) (LIST.OF.LINES TEXT) (XALIGNMENT HORIZONTAL.ALIGNMENT) (YALIGNMENT VERTICAL.ALIGNMENT ) (FONT FONT) (OPERATION (QUOTE INVERT))) (ITEM LIGHT (PLACEMENT (BOUNDING.BOX BUTTON)) (CELL CELL) (REFERENCE.VALUE VALUE))) OTHER (FNS ((1 CONVERT.BACKLIT.BUTTON.OFFSETS))) CLASSES (BUTTON COMPOSITE) VERSION 1) (DEFINEQ (CONVERT.BACKLIT.BUTTON.OFFSETS (LAMBDA (ITEM) (* edited: "16-Aug-84 10:07") (CONVERT.GRIDDED.OFFSETSQ ITEM HORIZONTAL.OFFSET VERTICAL.OFFSET TEXT.OFFSET))) ) (READ.ITEMTYPE BACKLIT.BUTTON.SPECIAL.FEATURE 5) (\TYPE ITEM.TYPE NAME BACKLIT.BUTTON.SPECIAL.FEATURE COMMENT "A general button" KIND COMPOSITE PARAMETERS ((\TYPE PARAMETER NAME PLACEMENT TYPE (POSITION) DEFAULT (170 . 170) COMMENT "The grid position of the lower left corner of the button" GRID.TYPE (LOCATION)) (\TYPE PARAMETER NAME PICTURE TYPE (BITMAP.NAME) DEFAULT SIMPLE.BUTTON.BITMAP COMMENT "The artwork for the button") (\TYPE PARAMETER NAME TEXT TYPE (LIST (STRING)) DEFAULT ("LABEL") COMMENT "The words associated with the button") (\TYPE PARAMETER NAME TEXT.OFFSET TYPE (OFFSET.VECTOR ( PLACEMENT)) DEFAULT (17 . 17) COMMENT "The offset of the words form the lower left corner of the button") (\TYPE PARAMETER NAME HORIZONTAL.ALIGNMENT TYPE (ONEOF (LEFT CENTER RIGHT)) DEFAULT CENTER COMMENT "Horizontal alignment of text") (\TYPE PARAMETER NAME VERTICAL.ALIGNMENT TYPE (ONEOF (TOP CENTER BOTTOM)) DEFAULT CENTER COMMENT "Vertical alignment of text") (\TYPE PARAMETER NAME FONT TYPE (FONT ) DEFAULT NIL COMMENT "The font of the label") (\TYPE PARAMETER NAME CELL TYPE (CELL) DEFAULT CELL.1 COMMENT "The cell to affect and display") (\TYPE PARAMETER NAME VALUE TYPE (CONSTANT) DEFAULT VALUE.1 COMMENT "The value to be set and reflected") (\TYPE PARAMETER NAME INITIAL.VALUE TYPE (CONSTANT) DEFAULT VALUE.1 COMMENT "The value to go back to if your hit when on")) SUBITEM.SPECS ((LABEL BUTTON (ITEM PICTURE (PLACEMENT (PTRANSLATE PLACEMENT (MINUS BUTTON.BITMAP.EXTRA) 0)) (BITMAP PICTURE))) (ITEM SENSITIVE.REGION (PLACEMENT (BOUNDING.BOX BUTTON )) (ACTION.FORM (LIST (QUOTE ACTON.BACKLIT.BUTTON.SPECIAL.FEATURE) CELL VALUE INITIAL.VALUE))) ( ITEM BLOCK.OF.TEXT (PLACEMENT (PTRANSLATE PLACEMENT TEXT.OFFSET)) (LIST.OF.LINES TEXT) (XALIGNMENT HORIZONTAL.ALIGNMENT) (YALIGNMENT VERTICAL.ALIGNMENT) (FONT FONT)) (ITEM LIGHT (PLACEMENT ( BOUNDING.BOX BUTTON)) (CELL CELL) (REFERENCE.VALUE VALUE))) OTHER (FNS ((ACTON ACTON.BACKLIT.BUTTON.SPECIAL.FEATURE) (1 CONVERT.BACKLIT.BUTTON.SPECIAL.FEATURE.OFFSETS))) CLASSES ( BUTTON COMPOSITE) VERSION 1) (DEFINEQ (ACTON.BACKLIT.BUTTON.SPECIAL.FEATURE (NLAMBDA (CELL VALUE INITIAL.VALUE) (* DAHJr "15-FEB-82 14:04") (CHANGE.CURRENT.VALUE CELL (COND (( EQUAL (GET.CURRENT.VALUE CELL) VALUE) INITIAL.VALUE) (T VALUE))))) (CONVERT.BACKLIT.BUTTON.SPECIAL.FEATURE.OFFSETS (LAMBDA (ITEM) (* edited: "16-Aug-84 10:07") (CONVERT.GRIDDED.OFFSETSQ ITEM HORIZONTAL.OFFSET VERTICAL.OFFSET TEXT.OFFSET))) ) (READ.ITEMTYPE BLOCK.OF.TEXT 5) (\TYPE ITEM.TYPE NAME BLOCK.OF.TEXT COMMENT "A bunch of related lines of text, with alignment" KIND COMPOSITE PARAMETERS ((\TYPE PARAMETER NAME PLACEMENT TYPE (POSITION) DEFAULT (100 . 100) COMMENT "The reference point of the block") (\TYPE PARAMETER NAME LIST.OF.LINES TYPE (LIST (STRING)) DEFAULT ("Lines of text" "in a BLOCK.OF.TEXT") COMMENT "The text lines") (\TYPE PARAMETER NAME XALIGNMENT TYPE (ONEOF (LEFT CENTER RIGHT)) DEFAULT LEFT COMMENT "Horizontal alignment") (\TYPE PARAMETER NAME YALIGNMENT TYPE (ONEOF (TOP CENTER BOTTOM)) DEFAULT TOP COMMENT "Vertical alignment" ) (\TYPE PARAMETER NAME FONT TYPE (FONT) DEFAULT (HELVETICA 10) COMMENT "The font in which to print the information") (\TYPE PARAMETER NAME SOURCE TYPE (ONEOF (INPUT INVERT MERGE TEXTURE)) DEFAULT INPUT COMMENT "Source for BITBLT") (\TYPE PARAMETER NAME OPERATION TYPE (ONEOF (REPLACE PAINT INVERT ERASE)) DEFAULT REPLACE COMMENT "Operation for BITBLT") (\TYPE PARAMETER NAME TEXTURE TYPE (SHADE) DEFAULT 65535 COMMENT "Texture for BITBLT") (\TYPE PARAMETER NAME FIGURE-COLOR TYPE (COLOR.NAME) DEFAULT BLACK COMMENT "The color corresponding to the figure") (\TYPE PARAMETER NAME GROUND-COLOR TYPE (COLOR.NAME) DEFAULT WHITE COMMENT "The color corresponding to ground")) SUBITEM.SPECS ((SELECT YALIGNMENT (TOP (FOREACH (LINE IN LIST.OF.LINES) (I FROM 0) DO (ITEM LINE.OF.TEXT (PLACEMENT (PTRANSLATE PLACEMENT (NEW.POSITION 0 (MINUS (ITIMES I (FONT.HEIGHT FONT)))))) (LINE LINE) (XALIGNMENT XALIGNMENT) (FONT FONT) ( SOURCE SOURCE) (OPERATION OPERATION) (TEXTURE TEXTURE) (FIGURE-COLOR FIGURE-COLOR) (GROUND-COLOR GROUND-COLOR)))) (CENTER (FOREACH (LINE IN LIST.OF.LINES) (I FROM 1) DO (ITEM LINE.OF.TEXT ( PLACEMENT (PTRANSLATE PLACEMENT (NEW.POSITION 0 (IDIFFERENCE (IQUOTIENT (ITIMES (LENGTH LIST.OF.LINES) (FONTPROP FONT (QUOTE HEIGHT))) 2) (ITIMES I (FONTPROP FONT (QUOTE HEIGHT))))))) (LINE LINE) (XALIGNMENT XALIGNMENT) (FONT FONT) (SOURCE SOURCE) (OPERATION OPERATION) (TEXTURE TEXTURE)))) (BOTTOM (FOREACH (LINE IN LIST.OF.LINES) (I FROM 1) DO (ITEM LINE.OF.TEXT (PLACEMENT (PTRANSLATE PLACEMENT (NEW.POSITION 0 (ITIMES (IDIFFERENCE (LENGTH LIST.OF.LINES) I) (FONTPROP FONT (QUOTE HEIGHT)))))) (LINE LINE) (XALIGNMENT XALIGNMENT) (FONT FONT) (SOURCE SOURCE) ( OPERATION OPERATION) (TEXTURE TEXTURE)))))) CLASSES (COMPOSITE)) (READ.ITEMTYPE BUTTON 5) (\TYPE ITEM.TYPE NAME BUTTON COMMENT "A general button" KIND COMPOSITE PARAMETERS ((\TYPE PARAMETER NAME PLACEMENT TYPE (POSITION) DEFAULT (170 . 170) COMMENT "The grid position of the lower left corner of the button" GRID.TYPE (LOCATION)) (\TYPE PARAMETER NAME PICTURE TYPE (BITMAP.NAME) DEFAULT SIMPLE.BUTTON.BITMAP COMMENT "The artwork for the button") (\TYPE PARAMETER NAME TEXT TYPE (LIST (STRING)) DEFAULT ("Label") COMMENT "The words associated with the button") (\TYPE PARAMETER NAME TEXT.OFFSET TYPE (OFFSET.VECTOR ( PLACEMENT)) DEFAULT (17 . 17) COMMENT "The offset of the words form the lower left corner of the button") (\TYPE PARAMETER NAME ACTION TYPE (FORM) DEFAULT (ACTION.PRINT "This action is brought to you by a GENERAL.BUTTON") COMMENT "The action to be taken when the button is depressed")) SUBITEM.SPECS ((ITEM GENERAL.BUTTON ( PLACEMENT PLACEMENT) (PICTURE PICTURE) (TEXT TEXT) (TEXT.OFFSET TEXT.OFFSET) (ACTION ACTION))) CLASSES (BUTTON COMPOSITE) VERSION 1 OTHER (FNS ((1 CONVERT.BUTTON.OFFSETS)))) (DEFINEQ (CONVERT.BUTTON.OFFSETS (LAMBDA (ITEM) (* edited: "16-Aug-84 10:07") (CONVERT.GRIDDED.OFFSETSQ ITEM HORIZONTAL.OFFSET VERTICAL.OFFSET TEXT.OFFSET))) ) (READ.ITEMTYPE C+SQ 5) (\TYPE ITEM.TYPE NAME C+SQ KIND COMPOSITE COMMENT "<A description of the item.type C+SQ>" PARAMETERS ((\TYPE PARAMETER NAME CIRCLE.PLACEMENT TYPE (POSITION) DEFAULT (204 . 156) COMMENT "The center of the circle") (\TYPE PARAMETER NAME CIRCLE.RADIUS TYPE (INTEGER) DEFAULT 50 COMMENT "The radius of the circle") (\TYPE PARAMETER NAME CIRCLE.BRUSH.SHAPE TYPE (ONEOF (ROUND SQUARE HORIZONTAL VERTICAL)) DEFAULT ROUND COMMENT "The brush shpae for drawing") (\TYPE PARAMETER NAME CIRCLE.BRUSH.SIZE TYPE (INTEGER) DEFAULT 10 COMMENT "The brush size for drawing") (\TYPE PARAMETER NAME BORDER.THICKNESS TYPE (INTEGER) DEFAULT 10 COMMENT "The number of points in the colored edge") (\TYPE PARAMETER NAME BORDER.OPERATION TYPE (ONEOF (REPLACE PAINT INVERT ERASE)) DEFAULT PAINT COMMENT "The operation for BITBLT") (\TYPE PARAMETER NAME BORDER.COLOR TYPE (SHADE) DEFAULT 33345 COMMENT "The color of the edge")) SUBITEM.SPECS ((ITEM CIRCLE (PLACEMENT CIRCLE.PLACEMENT) (RADIUS CIRCLE.RADIUS) (BRUSH.SHAPE CIRCLE.BRUSH.SHAPE) (BRUSH.SIZE CIRCLE.BRUSH.SIZE)) (ITEM BORDER ( PLACEMENT (create REGION LEFT ← (IDIFFERENCE (fetch (POSITION XCOORD) of CIRCLE.PLACEMENT) (IPLUS CIRCLE.BRUSH.SIZE CIRCLE.RADIUS BORDER.THICKNESS)) BOTTOM ← (IDIFFERENCE (fetch (POSITION YCOORD) of CIRCLE.PLACEMENT) (IPLUS CIRCLE.BRUSH.SIZE CIRCLE.RADIUS BORDER.THICKNESS)) WIDTH ← (ITIMES ( IPLUS CIRCLE.BRUSH.SIZE CIRCLE.RADIUS BORDER.THICKNESS) 2) HEIGHT ← (ITIMES (IPLUS CIRCLE.BRUSH.SIZE CIRCLE.RADIUS BORDER.THICKNESS) 2))) (THICKNESS BORDER.THICKNESS) (OPERATION BORDER.OPERATION) ( COLOR BORDER.COLOR))) CLASSES (COMPOSITE)) (READ.ITEMTYPE CAPTION 5) (\TYPE ITEM.TYPE NAME CAPTION COMMENT "A block of text, positioned (on the grid) at its top left corner" KIND COMPOSITE PARAMETERS ((\TYPE PARAMETER NAME PLACEMENT TYPE (POSITION) DEFAULT (170 . 170) COMMENT "Top left corner of block of text" GRID.TYPE (LOCATION)) (\TYPE PARAMETER NAME LIST.OF.LINES TYPE ( LIST (STRING)) DEFAULT ("List of lines" "in a CAPTION") COMMENT "The text of the block") (\TYPE PARAMETER NAME FONT TYPE (FONT) DEFAULT (HELVETICA 12) COMMENT "The font in which the caption is printed") (\TYPE PARAMETER NAME SOURCE TYPE (ONEOF (INPUT INVERT MERGE TEXTURE)) DEFAULT INPUT COMMENT "Source for BITBLT") (\TYPE PARAMETER NAME OPERATION TYPE ( ONEOF (REPLACE PAINT INVERT ERASE)) DEFAULT REPLACE COMMENT "Operation for BITBLT") (\TYPE PARAMETER NAME TEXTURE TYPE (SHADE) DEFAULT 65535 COMMENT "Texture for BITBLT")) SUBITEM.SPECS (( ITEM BLOCK.OF.TEXT (PLACEMENT PLACEMENT) (LIST.OF.LINES LIST.OF.LINES) (XALIGNMENT (QUOTE LEFT)) (YALIGNMENT (QUOTE TOP)) (FONT FONT) (SOURCE SOURCE) (OPERATION OPERATION) (TEXTURE TEXTURE))) CLASSES (COMPOSITE)) (READ.ITEMTYPE CASCADE 5) (\TYPE ITEM.TYPE NAME CASCADE COMMENT "A set of backlit buttons which all affect the same cell, thus interacting" KIND COMPOSITE PARAMETERS ((\TYPE PARAMETER NAME PLACEMENT TYPE (POSITION) DEFAULT (340 . 255) COMMENT "Offset for the whole bunch" GRID.TYPE (LOCATION)) (\TYPE PARAMETER NAME BUTTONS TYPE (LIST ( STRUCTURE ((TEXT (LIST (STRING))) (VALUE (CONSTANT))))) DEFAULT ((("LABEL 1") VALUE.1) (( "LABEL 2") VALUE2)) COMMENT "The buttons themselves") (\TYPE PARAMETER NAME BUTTON.PICTURE TYPE ( BITMAP.NAME) DEFAULT SIMPLE.BUTTON.BITMAP COMMENT "The graphic for the button") (\TYPE PARAMETER NAME INDICATOR.PICTURE TYPE (BITMAP.NAME) DEFAULT SMALL.SPOT.BITMAP COMMENT "The graphic for the indicators") (\TYPE PARAMETER NAME BUTTON/INDICATOR.SPACING TYPE (OFFSET.VECTOR ) DEFAULT (0 . 51) COMMENT "Spacing between button and bottom indicator") (\TYPE PARAMETER NAME INDICATOR.SPACING TYPE (OFFSET.VECTOR) DEFAULT (0 . 34) COMMENT "Spacing between the indicators") (\TYPE PARAMETER NAME TEXT.DISPLACEMENT TYPE (OFFSET.VECTOR) DEFAULT (-34 . 17) COMMENT "Offset for the text from the indicators") (\TYPE PARAMETER NAME FONT TYPE (FONT) DEFAULT ( HELVETICA 10) COMMENT "The font for the text") (\TYPE PARAMETER NAME HORIZONTAL.ALIGNMENT TYPE ( ONEOF (LEFT CENTER RIGHT)) DEFAULT LEFT COMMENT "Horizontal alignment of the text") (\TYPE PARAMETER NAME VERTICAL.ALIGNMENT TYPE (ONEOF (TOP CENTER BOTTOM)) DEFAULT TOP COMMENT "Vertical alignment of the text") (\TYPE PARAMETER NAME CONTINUOUS? TYPE (ONEOF (YES NO)) DEFAULT NO COMMENT "Whether or not to keep going if the button is held down") (\TYPE PARAMETER NAME RATE TYPE (INTEGER) DEFAULT 300 COMMENT "Rate it changes (in milliseconds) if continuous") (\TYPE PARAMETER NAME CELL TYPE (CELL) DEFAULT CELL.1 COMMENT "The affected cell") (\TYPE PARAMETER NAME INITIAL.VALUE TYPE (CONSTANT) DEFAULT VALUE.1 COMMENT "An initial value for the cell") (\TYPE PARAMETER NAME SHOW.INITIAL.VALUE? TYPE (ONEOF (YES NO)) DEFAULT YES COMMENT "Whether or not the default is visible - ala 1075")) SUBITEM.SPECS ((ITEM CASCADE.BUTTON (PLACEMENT PLACEMENT) (BUTTONS BUTTONS) (CELL CELL) (PICTURE BUTTON.PICTURE) (CONTINUOUS? CONTINUOUS?) (RATE RATE) (AT.LIMIT (QUOTE WRAP.AROUND)) (DIRECTION (QUOTE UP))) (FOREACH (BUTTON IN (COND ((EQ SHOW.INITIAL.VALUE? (QUOTE YES)) BUTTONS) (T (for B in BUTTONS collect B when (NOT (EQUAL (CADR B) INITIAL.VALUE)))))) (I FROM 0) (J FROM 0) DO (ITEM CASCADE.INDICATOR (PLACEMENT (PTRANSLATE PLACEMENT (IPLUS (ITIMES J (CAR INDICATOR.SPACING)) (CAR BUTTON/INDICATOR.SPACING)) (IPLUS ( ITIMES I (CDR INDICATOR.SPACING)) (CDR BUTTON/INDICATOR.SPACING)))) (BITMAP INDICATOR.PICTURE) ( TEXT (CAR BUTTON)) (FONT FONT) (TEXT.OFFSET TEXT.DISPLACEMENT) (HORIZONTAL.ALIGNMENT HORIZONTAL.ALIGNMENT) (VERTICAL.ALIGNMENT VERTICAL.ALIGNMENT) (CELL CELL) (VALUE (CADR BUTTON)))) (ITEM INITIALIZATION (PLACEMENT PLACEMENT) (ACTION.FORM (LIST (QUOTE SET.CELL) CELL INITIAL.VALUE )))) OTHER (FNS ((1 CONVERT.CASCADE.OFFSETS)) BITMAPS ((SMALL.SPOT.BITMAP {(READBITMAP)(21 22 "@AOL@@@@" "@GOO@@@@" "@OOOH@@@" "AOOOL@@@" "COOON@@@" "GOOOO@@@" "GOOOO@@@" "OOOOOH@@" "OOOOOH@@" "OOOOOH@@" "OOOOOH@@" "OOOOOH@@" "OOOOOH@@" "OOOOOH@@" "OOOOOH@@" "GOOOO@@@" "GOOOO@@@" "COOON@@@" "AOOOL@@@" "@OOOH@@@" "@GOO@@@@" "@AOL@@@@")}))) CLASSES (COMPOSITE BUTTON) VERSION 1) (DEFINEQ (CONVERT.CASCADE.OFFSETS (LAMBDA (ITEM) (* edited: "16-Aug-84 10:27") (PROG NIL (CONVERT.GRIDDED.OFFSETSQ ITEM BUTTON/INDICATOR.HORIZONTAL.SPACING BUTTON/INDICATOR.SPACING BUTTON/INDICATOR.SPACING) ( CONVERT.GRIDDED.OFFSETSQ ITEM HORIZONTAL.SPACING VERTICAL.SPACING INDICATOR.SPACING) ( CONVERT.GRIDDED.OFFSETSQ ITEM TEXT.DISPLACEMENT TEXT.DISPLACEMENT.↑ TEXT.DISPLACEMENT)))) ) (READ.ITEMTYPE CASCADE.BUTTON 5) (\TYPE ITEM.TYPE NAME CASCADE.BUTTON COMMENT "A small button, with a label on it, which flashes when pushed, and does internal action" KIND COMPOSITE PARAMETERS ((\TYPE PARAMETER NAME PLACEMENT TYPE (POSITION) DEFAULT (170 . 170) COMMENT "The grid position of the lower left corner of the button" GRID.TYPE (LOCATION)) (\TYPE PARAMETER NAME BUTTONS TYPE (LIST (STRUCTURE ((TEXT (LIST (STRING))) (VALUE (CONSTANT))))) DEFAULT ((( "LABEL 1") VALUE.1) (("LABEL 2") VALUE2)) COMMENT "The buttons themselves") (\TYPE PARAMETER NAME PICTURE TYPE (BITMAP.NAME) DEFAULT SIMPLE.BUTTON.BITMAP COMMENT "The graphic for the button") ( \TYPE PARAMETER NAME CELL TYPE (CELL) DEFAULT CELL.1 COMMENT "The cell changed by the button") ( \TYPE PARAMETER NAME CONTINUOUS? TYPE (ONEOF (YES NO)) DEFAULT NO COMMENT "Whether or not to keep going if the button is held down") (\TYPE PARAMETER NAME RATE TYPE (INTEGER) DEFAULT 300 COMMENT "Rate it changes (in milliseconds) if continuous") (\TYPE PARAMETER NAME AT.LIMIT TYPE (ONEOF (WRAP.AROUND STICK.AT.LIMIT)) DEFAULT WRAP.AROUND COMMENT "What to do when it reaches the limit") (\TYPE PARAMETER NAME DIRECTION TYPE (ONEOF (UP DOWN)) DEFAULT UP COMMENT "The direction in which to walk through the BUTTONS list")) SUBITEM.SPECS ((LABEL BUTTON (ITEM PICTURE (PLACEMENT (PTRANSLATE PLACEMENT (MINUS BUTTON.BITMAP.EXTRA) 0)) (BITMAP PICTURE))) (ITEM FLASHING.SENSITIVE.REGION (PLACEMENT (BOUNDING.BOX BUTTON)) (ACTION.FORM (LIST (QUOTE ACTON.CASCADE.BUTTON) BUTTONS CELL (AND (EQ CONTINUOUS? (QUOTE YES)) RATE) (EQ DIRECTION ( QUOTE DOWN)) (EQ AT.LIMIT (QUOTE WRAP.AROUND)))))) OTHER (FNS ((ACTON ACTON.CASCADE.BUTTON) (NIL INCREMENT.CASCADE.BUTTON))) CLASSES (BUTTON COMPOSITE)) (DEFINEQ (ACTON.CASCADE.BUTTON (NLAMBDA (BUTTONS CELL RATE DOWN WRAP.AROUND) (* edited: "15-Aug-84 15:04") (INCREMENT.CASCADE.BUTTON BUTTONS CELL DOWN WRAP.AROUND) (COND (RATE (do (TRILLIUM.DISMISS RATE) (COND ((MOUSESTATE UP) (RETURN) )) (INCREMENT.CASCADE.BUTTON BUTTONS CELL DOWN WRAP.AROUND)))))) (INCREMENT.CASCADE.BUTTON (LAMBDA (BUTTONS CELL DOWN WRAP.AROUND) (* edited: "15-Aug-84 15:08") (PROG (CURRENT.VALUE N NEW.VALUE ) (SETQ N (LENGTH BUTTONS)) (SETQ CURRENT.VALUE (GET.CURRENT.VALUE CELL)) (COND (DOWN (for I from 1 to (SUB1 N) as ELEM on BUTTONS when (EQ (CADADR ELEM) CURRENT.VALUE) do (SETQ NEW.VALUE (CADAR ELEM)) ( RETURN) finally (SETQ NEW.VALUE (COND (WRAP.AROUND (CADAR (NTH BUTTONS N))) (T CURRENT.VALUE))))) (T ( for I from 1 to (SUB1 N) as ELEM on BUTTONS when (EQ (CADAR ELEM) CURRENT.VALUE) do (SETQ NEW.VALUE ( CADADR ELEM)) (RETURN) finally (SETQ NEW.VALUE (COND (WRAP.AROUND (CADAR BUTTONS)) (T CURRENT.VALUE))) ))) (CHANGE.CURRENT.VALUE CELL NEW.VALUE)))) ) (READ.ITEMTYPE CASCADE.INDICATOR 5) (\TYPE ITEM.TYPE NAME CASCADE.INDICATOR COMMENT "An indicator with associated text" KIND COMPOSITE PARAMETERS ((\TYPE PARAMETER NAME PLACEMENT TYPE (POSITION) DEFAULT (170 . 170) COMMENT "The grid position of the lower left corner of the light" GRID.TYPE (LOCATION)) (\TYPE PARAMETER NAME BITMAP TYPE (BITMAP.NAME) DEFAULT SMALL.SPOT.BITMAP COMMENT "The graphics for the indicator") (\TYPE PARAMETER NAME TEXT TYPE (LIST (STRING)) DEFAULT ("Label for Light") COMMENT "The text associated with the light") (\TYPE PARAMETER NAME FONT TYPE (FONT) DEFAULT (HELVETICA 10) COMMENT "Font for the label") (\TYPE PARAMETER NAME TEXT.OFFSET TYPE (OFFSET.VECTOR (PLACEMENT)) DEFAULT (51 . 17) COMMENT "The offset of the words form the lower left corner of the button") ( \TYPE PARAMETER NAME HORIZONTAL.ALIGNMENT TYPE (ONEOF (LEFT CENTER RIGHT)) DEFAULT LEFT COMMENT "Horizontal alignment of text about reference point") (\TYPE PARAMETER NAME VERTICAL.ALIGNMENT TYPE (ONEOF (TOP CENTER BOTTOM)) DEFAULT CENTER COMMENT "Vertical alignment of text about the reference point") (\TYPE PARAMETER NAME CELL TYPE (CELL) DEFAULT CELL.1 COMMENT "The cell to affect and display") (\TYPE PARAMETER NAME VALUE TYPE (CONSTANT ) DEFAULT VALUE.1 COMMENT "The value to be set and reflected")) SUBITEM.SPECS ((ITEM INDICATOR ( PLACEMENT PLACEMENT) (BITMAP BITMAP) (CELL CELL) (REFERENCE.VALUE VALUE)) (ITEM BLOCK.OF.TEXT ( PLACEMENT (PTRANSLATE PLACEMENT TEXT.OFFSET)) (LIST.OF.LINES TEXT) (FONT FONT) (XALIGNMENT HORIZONTAL.ALIGNMENT) (YALIGNMENT VERTICAL.ALIGNMENT))) CLASSES (COMPOSITE) VERSION 1 OTHER (FNS ( (1 CONVERT.CASCADE.INDICATOR.OFFSETS)))) (DEFINEQ (CONVERT.CASCADE.INDICATOR.OFFSETS (LAMBDA (ITEM) (* edited: "16-Aug-84 10:07") (CONVERT.GRIDDED.OFFSETSQ ITEM HORIZONTAL.OFFSET VERTICAL.OFFSET TEXT.OFFSET))) ) (READ.ITEMTYPE CASCADE.LIGHT 5) (\TYPE ITEM.TYPE NAME CASCADE.LIGHT COMMENT "A light with associated text" KIND COMPOSITE PARAMETERS ((\TYPE PARAMETER NAME PLACEMENT TYPE (POSITION) DEFAULT (170 . 170) COMMENT "The grid position of the lower left corner of the light" GRID.TYPE (LOCATION)) (\TYPE PARAMETER NAME TEXT TYPE (LIST (STRING)) DEFAULT (Label for Light) COMMENT "The text associated with the light") (\TYPE PARAMETER NAME TEXT.OFFSET TYPE (OFFSET.VECTOR ( PLACEMENT)) DEFAULT (51 . 17) COMMENT "The offset of the words form the lower left corner of the button") (\TYPE PARAMETER NAME HORIZONTAL.ALIGNMENT TYPE (ONEOF (LEFT CENTER RIGHT)) DEFAULT (QUOTE LEFT) COMMENT "Horizontal alignment of text about reference point") (\TYPE PARAMETER NAME VERTICAL.ALIGNMENT TYPE (ONEOF (TOP CENTER BOTTOM)) DEFAULT (QUOTE CENTER) COMMENT "Vertical alignment of text about the reference point") (\TYPE PARAMETER NAME CELL TYPE (CELL) DEFAULT CELL.1 COMMENT "The cell to affect and display") (\TYPE PARAMETER NAME VALUE TYPE (CONSTANT ) DEFAULT VALUE.1 COMMENT "The value to be set and reflected")) SUBITEM.SPECS ((ITEM LIGHT ( PLACEMENT (NEW.REGION PLACEMENT 30 30)) (CELL CELL) (REFERENCE.VALUE VALUE)) (ITEM BLOCK.OF.TEXT (PLACEMENT (TRANSLATE PLACEMENT TEXT.OFFSET)) (LIST.OF.LINES TEXT) (XALIGNMENT HORIZONTAL.ALIGNMENT ) (YALIGNMENT VERTICAL.ALIGNMENT))) CLASSES (COMPOSITE) VERSION 1 OTHER (FNS ((1 CONVERT.CASCADE.LIGHT.OFFSETS)))) (DEFINEQ (CONVERT.CASCADE.LIGHT.OFFSETS (LAMBDA (ITEM) (* edited: "16-Aug-84 10:07") (CONVERT.GRIDDED.OFFSETSQ ITEM HORIZONTAL.OFFSET VERTICAL.OFFSET TEXT.OFFSET))) ) (READ.ITEMTYPE CASCADE.UP.DOWN.BUTTONS 5) (\TYPE ITEM.TYPE NAME CASCADE.UP.DOWN.BUTTONS COMMENT "Pair of Up/Down buttons for controlling *.CASCADE.TWO.BUTTONS itemtypes" KIND COMPOSITE PARAMETERS ( (\TYPE PARAMETER NAME PLACEMENT TYPE (POSITION) DEFAULT (170 . 170) COMMENT "The location of this item" GRID.TYPE (LOCATION)) (\TYPE PARAMETER NAME INDICATORS TYPE (LIST ( STRUCTURE ((TEXT (LIST (STRING))) (VALUE (CONSTANT))))) DEFAULT ((("LABEL 1") VALUE.1) (( "LABEL 2") VALUE.2) (("LABEL 3") VALUE.3)) COMMENT "The lkist of indicator/value pairs that the buttons affect") (\TYPE PARAMETER NAME CELL TYPE (CELL) DEFAULT CELL.1 COMMENT "The cell affected") (\TYPE PARAMETER NAME BUTTON.SPACING TYPE ( OFFSET.VECTOR) DEFAULT (0 . 51) COMMENT "Between buttons") (\TYPE PARAMETER NAME UP.PICTURE TYPE ( BITMAP.NAME) DEFAULT UP.BUTTON COMMENT "Bitmap picture for Up button") (\TYPE PARAMETER NAME DOWN.PICTURE TYPE (BITMAP.NAME) DEFAULT DOWN.BUTTON COMMENT "Bitmap picture for Down button") ( \TYPE PARAMETER NAME CONTINUOUS? TYPE (ONEOF (YES NO)) DEFAULT NO COMMENT "Whether to keep going if the button is held down") (\TYPE PARAMETER NAME AT.LIMIT TYPE (ONEOF ( STICK.AT.LIMIT WRAP.AROUND)) DEFAULT STICK.AT.LIMIT COMMENT "What to do when you reach the limit") ( \TYPE PARAMETER NAME RATE TYPE (INTEGER) DEFAULT 300 COMMENT "Delay in milliseconds")) SUBITEM.SPECS ((ITEM CASCADE.BUTTON (PLACEMENT (PTRANSLATE PLACEMENT BUTTON.SPACING)) (PICTURE UP.PICTURE) ( BUTTONS INDICATORS) (CELL CELL) (DIRECTION (QUOTE UP)) (CONTINUOUS? CONTINUOUS?) (AT.LIMIT AT.LIMIT) (RATE RATE)) (ITEM CASCADE.BUTTON (PLACEMENT PLACEMENT) (PICTURE DOWN.PICTURE) (BUTTONS INDICATORS) (CELL CELL) (DIRECTION (QUOTE DOWN)) (CONTINUOUS? CONTINUOUS?) (AT.LIMIT AT.LIMIT) (RATE RATE))) OTHER (FNS ((1 CONVERT.CASCADE.UP.DOWN.BUTTONS.OFFSETS))) CLASSES (COMPOSITE BUTTON) VERSION 1) (DEFINEQ (CONVERT.CASCADE.UP.DOWN.BUTTONS.OFFSETS (LAMBDA (ITEM) (* edited: "16-Aug-84 12:59") (CONVERT.GRIDDED.OFFSETSQ ITEM HORIZONTAL.SPACING VERTICAL.SPACING BUTTON.SPACING))) ) (READ.ITEMTYPE CHANGE.FRAME.BUTTON 5) (\TYPE ITEM.TYPE NAME CHANGE.FRAME.BUTTON COMMENT "A general button" KIND COMPOSITE PARAMETERS (( \TYPE PARAMETER NAME PLACEMENT TYPE (POSITION) DEFAULT (170 . 170) COMMENT "The grid position of the lower left corner of the button" GRID.TYPE (LOCATION)) (\TYPE PARAMETER NAME PICTURE TYPE (BITMAP.NAME) DEFAULT OFFPAGE.BUTTON.BITMAP COMMENT "The artwork for the button") (\TYPE PARAMETER NAME LIST.OF.LINES TYPE (LIST (STRING)) DEFAULT ("Push to <frame>") COMMENT "The words associated with the button") (\TYPE PARAMETER NAME TEXT.OFFSET TYPE (OFFSET.VECTOR ( PLACEMENT)) DEFAULT (34 . 51) COMMENT "The offset of the words form the lower left corner of the button") (\TYPE PARAMETER NAME HORIZONTAL.ALIGNMENT TYPE (ONEOF (LEFT CENTER RIGHT)) DEFAULT CENTER COMMENT "Horizontal alignment of text about reference point") (\TYPE PARAMETER NAME VERTICAL.ALIGNMENT TYPE (ONEOF (TOP CENTER BOTTOM)) DEFAULT BOTTOM COMMENT "Vertical alignment of text about the reference point") (\TYPE PARAMETER NAME FONT TYPE (FONT) DEFAULT NIL COMMENT "Font in which to print the label") (\TYPE PARAMETER NAME SOURCE TYPE (ONEOF ( INPUT)) DEFAULT INPUT COMMENT "The source for BITBLT for the labels") (\TYPE PARAMETER NAME OPERATION TYPE (ONEOF (REPLACE INVERT PAINT ERASE)) DEFAULT INVERT COMMENT "The operation for BITBLT for the labels") (\TYPE PARAMETER NAME RESPONSE TYPE (ONEOF (NONE BLACK.WHILE.DEPRESSED INVERTS.WHEN.DEPRESSED)) DEFAULT BLACK.WHILE.DEPRESSED COMMENT "The response to being depressed") (\TYPE PARAMETER NAME STACK.OPERATION TYPE (ONEOF (NO.CHANGE PUSH POP)) DEFAULT PUSH COMMENT "How to change the stack of frames") (\TYPE PARAMETER NAME INITIALIZATION TYPE (ONEOF (INITIALIZE DO.NOT.INITIALIZE)) DEFAULT INITIALIZE COMMENT "Whether or not to do initialization of the frame") (\TYPE PARAMETER NAME FRAME TYPE (FRAME) DEFAULT NIL COMMENT "The frame to push to")) SUBITEM.SPECS ((ITEM GENERAL.BUTTON (PLACEMENT PLACEMENT) ( PICTURE PICTURE) (TEXT LIST.OF.LINES) (TEXT.OFFSET TEXT.OFFSET) (HORIZONTAL.ALIGNMENT HORIZONTAL.ALIGNMENT) (VERTICAL.ALIGNMENT VERTICAL.ALIGNMENT) (FONT FONT) (SOURCE SOURCE) ( OPERATION OPERATION) (RESPONSE RESPONSE) (ACTION (BUILD.STACK.OPERATION STACK.OPERATION FRAME INITIALIZATION)))) OTHER (BITMAPS ((OFFPAGE.BUTTON.BITMAP {(READBITMAP)(74 40 "OOOOOOOOOOOOOOOOOD@@" "OOOOOOOOOOOOOOOOOF@@" "OOOOOOOOOOOOOOOOOG@@" "N@@@@@@@@@@@@@@@GGH@" "N@@@@@@@@@@@@@@@GGL@" "N@@@@@@@@@@@@@@@GGL@" "N@@@@@@@@@@@@@@@GGL@" "N@@@@@@@@@@@@@@@GGL@" "N@@@@@@@@@@@@@@@GGL@" "N@@@@@@@@@@@@@@@GGL@" "N@@@@@@@@@@@@@@@GGL@" "N@@@@@@@@@@@@@@@GGL@" "N@@@@@@@@@@@@@@@GGL@" "N@@@@@@@@@@@@@@@GGL@" "N@@@@@@@@@@@@@@@GGL@" "N@@@@@@@@@@@@@@@GGL@" "N@@@@@@@@@@@@@@@GGL@" "N@@@@@@@@@@@@@@@GGL@" "N@@@@@@@@@@@@@@@GGL@" "N@@@@@@@@@@@@@@@GGL@" "N@@@@@@@@@@@@@@@GGL@" "N@@@@@@@@@@@@@@@GGL@" "N@@@@@@@@@@@@@@@GGL@" "N@@@@@@@@@@@@@@@GGL@" "N@@@@@@@@@@@@@@@GGL@" "N@@@@@@@@@@@@@@@GGL@" "N@@@@@@@@@@@@@@@GGL@" "N@@@@@@@@@@@@@@@GGL@" "N@@@@@@@@@@@@@@@GGL@" "N@@@@@@@@@@@@@@@GGL@" "N@@@@@@@@@@@@@@@GGL@" "OOOOOOOOOOOOOOOOOGL@" "OOOOOOOOOOOOOOOOOGL@" "OOOOOOOOOOOOOOOOOGL@" "@@@@@@@@@@@@@@@@@CL@" "OOOOOOOOOOOOOOOOOAL@" "GOOOOOOOOOOOOOOOOHL@" "COOOOOOOOOOOOOOOOLD@" "AOOOOOOOOOOOOOOOON@@" "@OOOOOOOOOOOOOOOOO@@")})) FNS ((1 CONVERT.CHANGE.FRAME.BUTTON.OFFSETS))) CLASSES (BUTTON COMPOSITE) VERSION 1) (DEFINEQ (CONVERT.CHANGE.FRAME.BUTTON.OFFSETS (LAMBDA (ITEM) (* edited: "16-Aug-84 10:07") (CONVERT.GRIDDED.OFFSETSQ ITEM HORIZONTAL.OFFSET VERTICAL.OFFSET TEXT.OFFSET))) ) (READ.ITEMTYPE COMPUTER 5) (\TYPE ITEM.TYPE NAME COMPUTER COMMENT "Adds the values of a list of cells" KIND COMPOSITE PARAMETERS ((\TYPE PARAMETER NAME PLACEMENT TYPE (POSITION) DEFAULT (170 . 170) COMMENT "The location of this item" GRID.TYPE (LOCATION)) (\TYPE PARAMETER NAME INPUTS TYPE (LIST (CELL)) DEFAULT (CELL.1) COMMENT "The cells upon which to trigger the computation") (\TYPE PARAMETER NAME OUTPUT TYPE (CELL) DEFAULT CELL.1 COMMENT "The output cell") (\TYPE PARAMETER NAME FORMULA TYPE ( FORM) DEFAULT 1 COMMENT "Formula for computing the value of the output cell")) SUBITEM.SPECS (( FOREACH (CELL IN INPUTS) (X FROM 0) DO (ITEM IMPLICATION (PLACEMENT (TRANSLATE PLACEMENT X 0)) ( CELL CELL) (ACTION.FORM (LIST (QUOTE ACTON.COMPUTER) (KWOTE FORMULA) (KWOTE OUTPUT) (KWOTE INPUTS)))))) OTHER (FNS ((ACTON ACTON.COMPUTER))) CLASSES (COMPOSITE)) (DEFINEQ (ACTON.COMPUTER (LAMBDA (FORMULA OUTPUT.CELL.NAME INPUT.CELL.NAMES) (* edited: "14-JAN-83 15:29") ( CHANGE.CURRENT.VALUE OUTPUT.CELL.NAME (EVALA FORMULA (for CELL in INPUT.CELL.NAMES collect (CONS CELL (GET.CURRENT.VALUE CELL))))))) ) (READ.ITEMTYPE EXTERNAL.BUTTON 5) (\TYPE ITEM.TYPE NAME EXTERNAL.BUTTON COMMENT "A button to cause effects in the world" KIND COMPOSITE PARAMETERS ((\TYPE PARAMETER NAME PLACEMENT TYPE (POSITION) DEFAULT (170 . 170) COMMENT "The grid position of the lower left corner of the button" GRID.TYPE (LOCATION)) (\TYPE PARAMETER NAME PICTURE TYPE (BITMAP.NAME) DEFAULT EXTERNAL.BUTTON.BITMAP COMMENT "The artwork for the button") (\TYPE PARAMETER NAME LIST.OF.LINES TYPE (LIST (STRING)) DEFAULT ("Effect an action" "outside the machine") COMMENT "The words associated with the button") (\TYPE PARAMETER NAME TEXT.OFFSET TYPE (OFFSET.VECTOR (PLACEMENT)) DEFAULT (34 . 85) COMMENT "The offset of the words form the lower left corner of the button") (\TYPE PARAMETER NAME HORIZONTAL.ALIGNMENT TYPE (ONEOF (LEFT CENTER RIGHT)) DEFAULT CENTER COMMENT "Horizontal alignment of text about reference point") (\TYPE PARAMETER NAME VERTICAL.ALIGNMENT TYPE (ONEOF (TOP CENTER BOTTOM)) DEFAULT BOTTOM COMMENT "Vertical alignment of text about the reference point") (\TYPE PARAMETER NAME FONT TYPE (FONT) DEFAULT NIL COMMENT "Font in which to print the label") (\TYPE PARAMETER NAME SOURCE TYPE (ONEOF ( INPUT)) DEFAULT INPUT COMMENT "The source for BITBLT for the labels") (\TYPE PARAMETER NAME OPERATION TYPE (ONEOF (REPLACE INVERT PAINT ERASE)) DEFAULT INVERT COMMENT "The operation for BITBLT for the labels") (\TYPE PARAMETER NAME RESPONSE TYPE (ONEOF (NONE BLACK.WHILE.DEPRESSED INVERTS.WHEN.DEPRESSED)) DEFAULT BLACK.WHILE.DEPRESSED COMMENT "The response to being depressed") (\TYPE PARAMETER NAME ACTION.FORM TYPE (FORM) DEFAULT ( ACTION.PRINT "Would now go off and affect the outside world") COMMENT "The action to be taken when the button is depressed")) SUBITEM.SPECS ((ITEM GENERAL.BUTTON ( PLACEMENT PLACEMENT) (PICTURE PICTURE) (TEXT LIST.OF.LINES) (TEXT.OFFSET TEXT.OFFSET) ( HORIZONTAL.ALIGNMENT HORIZONTAL.ALIGNMENT) (VERTICAL.ALIGNMENT VERTICAL.ALIGNMENT) (FONT FONT) ( SOURCE SOURCE) (OPERATION OPERATION) (RESPONSE RESPONSE) (ACTION ACTION.FORM))) OTHER (BITMAPS (( EXTERNAL.BUTTON.BITMAP {(READBITMAP)(74 74 "OOOOOOOOOOOOOOOOOD@@" "OOOOOOOOOOOOOOOOOF@@" "OOOOOOOOOOOOOOOOOG@@" "N@@@@@@@@@@@@@@@GGH@" "N@@@@@@@@@@@@@@@GGL@" "N@@@@@@@@@@@@@@@GGL@" "N@@@@@@@@@@@@@@@GGL@" "N@@@@@@@@@@@@@@@GGL@" "N@@@@@@@@@@@@@@@GGL@" "N@@@@@@@@@@@@@@@GGL@" "N@@@@@@@@@@@@@@@GGL@" "N@@@@@@@@@@@@@@@GGL@" "N@@@@@@@@@@@@@@@GGL@" "N@@@@@@@@@@@@@@@GGL@" "N@@@@@@@@@@@@@@@GGL@" "N@@@@@@@@@@@@@@@GGL@" "N@@@@@@@@@@@@@@@GGL@" "N@@@@@@@@@@@@@@@GGL@" "N@@@@@@@@@@@@@@@GGL@" "N@@@@@@@@@@@@@@@GGL@" "N@@@@@@@@@@@@@@@GGL@" "N@@@@@@@@@@@@@@@GGL@" "N@@@@@@@@@@@@@@@GGL@" "N@@@@@@@@@@@@@@@GGL@" "N@@@@@@@@@@@@@@@GGL@" "N@@@@@@@@@@@@@@@GGL@" "N@@@@@@@@@@@@@@@GGL@" "N@@@@@@@@@@@@@@@GGL@" "N@@@@@@@@@@@@@@@GGL@" "N@@@@@@@@@@@@@@@GGL@" "N@@@@@@@@@@@@@@@GGL@" "N@@@@@@@@@@@@@@@GGL@" "N@@@@@@@@@@@@@@@GGL@" "N@@@@@@@@@@@@@@@GGL@" "N@@@@@@@@@@@@@@@GGL@" "N@@@@@@@@@@@@@@@GGL@" "N@@@@@@@@@@@@@@@GGL@" "N@@@@@@@@@@@@@@@GGL@" "N@@@@@@@@@@@@@@@GGL@" "N@@@@@@@@@@@@@@@GGL@" "N@@@@@@@@@@@@@@@GGL@" "N@@@@@@@@@@@@@@@GGL@" "N@@@@@@@@@@@@@@@GGL@" "N@@@@@@@@@@@@@@@GGL@" "N@@@@@@@@@@@@@@@GGL@" "N@@@@@@@@@@@@@@@GGL@" "N@@@@@@@@@@@@@@@GGL@" "N@@@@@@@@@@@@@@@GGL@" "N@@@@@@@@@@@@@@@GGL@" "N@@@@@@@@@@@@@@@GGL@" "N@@@@@@@@@@@@@@@GGL@" "N@@@@@@@@@@@@@@@GGL@" "N@@@@@@@@@@@@@@@GGL@" "N@@@@@@@@@@@@@@@GGL@" "N@@@@@@@@@@@@@@@GGL@" "N@@@@@@@@@@@@@@@GGL@" "N@@@@@@@@@@@@@@@GGL@" "N@@@@@@@@@@@@@@@GGL@" "N@@@@@@@@@@@@@@@GGL@" "N@@@@@@@@@@@@@@@GGL@" "N@@@@@@@@@@@@@@@GGL@" "N@@@@@@@@@@@@@@@GGL@" "N@@@@@@@@@@@@@@@GGL@" "N@@@@@@@@@@@@@@@GGL@" "N@@@@@@@@@@@@@@@GGL@" "OOOOOOOOOOOOOOOOOGL@" "OOOOOOOOOOOOOOOOOGL@" "OOOOOOOOOOOOOOOOOGL@" "@@@@@@@@@@@@@@@@@CL@" "OOOOOOOOOOOOOOOOOAL@" "GOOOOOOOOOOOOOOOOHL@" "COOOOOOOOOOOOOOOOLD@" "AOOOOOOOOOOOOOOOON@@" "@OOOOOOOOOOOOOOOOO@@")})) FNS ((1 CONVERT.EXTERNAL.BUTTON.OFFSETS))) CLASSES (BUTTON COMPOSITE) VERSION 1) (DEFINEQ (CONVERT.EXTERNAL.BUTTON.OFFSETS (LAMBDA (ITEM) (* edited: "16-Aug-84 10:07") (CONVERT.GRIDDED.OFFSETSQ ITEM HORIZONTAL.OFFSET VERTICAL.OFFSET TEXT.OFFSET))) ) (READ.ITEMTYPE GENERAL.BUTTON 5) (\TYPE ITEM.TYPE NAME GENERAL.BUTTON COMMENT "A general button" KIND COMPOSITE PARAMETERS ((\TYPE PARAMETER NAME PLACEMENT TYPE (POSITION) DEFAULT (170 . 170) COMMENT "The grid position of the lower left corner of the button" GRID.TYPE (LOCATION)) (\TYPE PARAMETER NAME PICTURE TYPE (BITMAP.NAME) DEFAULT SIMPLE.BUTTON.BITMAP COMMENT "The artwork for the button") (\TYPE PARAMETER NAME TEXT TYPE (LIST (STRING)) DEFAULT ("Label") COMMENT "The words associated with the button") (\TYPE PARAMETER NAME TEXT.OFFSET TYPE (OFFSET.VECTOR ( PLACEMENT)) DEFAULT (17 . 17) COMMENT "The offset of the words form the lower left corner of the button") (\TYPE PARAMETER NAME HORIZONTAL.ALIGNMENT TYPE (ONEOF (LEFT CENTER RIGHT)) DEFAULT CENTER COMMENT "Horizontal alignment of text about reference point") (\TYPE PARAMETER NAME VERTICAL.ALIGNMENT TYPE (ONEOF (TOP CENTER BOTTOM)) DEFAULT CENTER COMMENT "Vertical alignment of text about the reference point") (\TYPE PARAMETER NAME FONT TYPE (FONT) DEFAULT NIL COMMENT "Font in which to print the label") (\TYPE PARAMETER NAME SOURCE TYPE (ONEOF ( INPUT)) DEFAULT INPUT COMMENT "The source for BITBLT for the labels") (\TYPE PARAMETER NAME OPERATION TYPE (ONEOF (REPLACE INVERT PAINT ERASE)) DEFAULT INVERT COMMENT "The operation for BITBLT for the labels") (\TYPE PARAMETER NAME RESPONSE TYPE (ONEOF (NONE BLACK.WHILE.DEPRESSED INVERTS.WHEN.DEPRESSED)) DEFAULT BLACK.WHILE.DEPRESSED COMMENT "The response to being depressed") (\TYPE PARAMETER NAME ACTION TYPE (FORM) DEFAULT (ACTION.PRINT "This action is brought to you by a GENERAL.BUTTON") COMMENT "The action to be taken when the button is depressed")) SUBITEM.SPECS ((LABEL GRAPHIC (ITEM PICTURE (PLACEMENT (PTRANSLATE PLACEMENT (MINUS BUTTON.BITMAP.EXTRA) 0)) (BITMAP PICTURE))) (SELECT RESPONSE (NONE (ITEM SENSITIVE.REGION (PLACEMENT (BOUNDING.BOX GRAPHIC)) (ACTION.FORM ACTION))) (BLACK.WHILE.DEPRESSED (ITEM FLASHING.SENSITIVE.REGION (PLACEMENT (BOUNDING.BOX GRAPHIC)) ( ACTION.FORM ACTION))) (INVERTS.WHEN.DEPRESSED (ITEM INVERTING.SENSITIVE.REGION (PLACEMENT ( BOUNDING.BOX GRAPHIC)) (ACTION.FORM ACTION)))) (ITEM BLOCK.OF.TEXT (PLACEMENT (PTRANSLATE PLACEMENT TEXT.OFFSET)) (LIST.OF.LINES TEXT) (XALIGNMENT HORIZONTAL.ALIGNMENT) (YALIGNMENT VERTICAL.ALIGNMENT) (FONT FONT) (OPERATION OPERATION))) OTHER (BITMAPS ((SIMPLE.BUTTON.BITMAP {( READBITMAP)(40 40 "OOOOOOOOM@@@" "OOOOOOOOMH@@" "OOOOOOOOML@@" "N@@@@@@AMN@@" "N@@@@@@AMO@@" "N@@@@@@AMO@@" "N@@@@@@AMO@@" "N@@@@@@AMO@@" "N@@@@@@AMO@@" "N@@@@@@AMO@@" "N@@@@@@AMO@@" "N@@@@@@AMO@@" "N@@@@@@AMO@@" "N@@@@@@AMO@@" "N@@@@@@AMO@@" "N@@@@@@AMO@@" "N@@@@@@AMO@@" "N@@@@@@AMO@@" "N@@@@@@AMO@@" "N@@@@@@AMO@@" "N@@@@@@AMO@@" "N@@@@@@AMO@@" "N@@@@@@AMO@@" "N@@@@@@AMO@@" "N@@@@@@AMO@@" "N@@@@@@AMO@@" "N@@@@@@AMO@@" "N@@@@@@AMO@@" "N@@@@@@AMO@@" "N@@@@@@AMO@@" "N@@@@@@AMO@@" "OOOOOOOOMO@@" "OOOOOOOOMO@@" "OOOOOOOOMO@@" "@@@@@@@@@O@@" "OOOOOOOOLG@@" "GOOOOOOONC@@" "COOOOOOOOA@@" "AOOOOOOOOH@@" "@OOOOOOOOL@@")})) FNS ((1 CONVERT.GENERAL.BUTTON.OFFSETS))) CLASSES (BUTTON COMPOSITE) VERSION 1) (DEFINEQ (CONVERT.GENERAL.BUTTON.OFFSETS (LAMBDA (ITEM) (* edited: "16-Aug-84 10:07") (CONVERT.GRIDDED.OFFSETSQ ITEM HORIZONTAL.OFFSET VERTICAL.OFFSET TEXT.OFFSET))) ) (READ.ITEMTYPE HORIZONTAL.BUTTONS 5) (\TYPE ITEM.TYPE NAME HORIZONTAL.BUTTONS COMMENT "A set of backlit buttons which all affect the same cell, thus interacting" KIND COMPOSITE PARAMETERS ((\TYPE PARAMETER NAME PLACEMENT TYPE (POSITION) DEFAULT (340 . 255) COMMENT "Offset for the whole bunch" GRID.TYPE (LOCATION)) (\TYPE PARAMETER NAME BUTTONS TYPE (LIST ( STRUCTURE ((TEXT (LIST (STRING))) (VALUE (CONSTANT))))) DEFAULT ((("LABEL 1") VALUE.1) (( "LABEL 2") VALUE.2)) COMMENT "The buttons themselves") (\TYPE PARAMETER NAME PICTURE TYPE ( BITMAP.NAME) DEFAULT SIMPLE.BUTTON.BITMAP COMMENT "The graphic for the buttons") (\TYPE PARAMETER NAME HORIZONTAL.SPACING TYPE (INTEGER) DEFAULT 51 COMMENT "Between buttons") (\TYPE PARAMETER NAME TEXT.DISPLACEMENT TYPE (OFFSET.VECTOR) DEFAULT (17 . 51) COMMENT "Offset for the text from the buttons") (\TYPE PARAMETER NAME HORIZONTAL.ALIGNMENT TYPE (ONEOF ( LEFT CENTER RIGHT)) DEFAULT CENTER COMMENT "Horizontal alignment of the text") (\TYPE PARAMETER NAME VERTICAL.ALIGNMENT TYPE (ONEOF (TOP CENTER BOTTOM)) DEFAULT TOP COMMENT "Vertical alignment of the text") (\TYPE PARAMETER NAME FONT TYPE (FONT) DEFAULT NIL COMMENT "The font in which to print the labels") (\TYPE PARAMETER NAME CELL TYPE (CELL) DEFAULT CELL.1 COMMENT "The affected cell") (\TYPE PARAMETER NAME INITIAL.VALUE TYPE (CONSTANT) DEFAULT VALUE.1 COMMENT "An initial value for the cell")) SUBITEM.SPECS ((ITEM SET.OF.LABELLED.BACKLIT.BUTTONS ( PLACEMENT PLACEMENT) (BUTTONS BUTTONS) (PICTURE PICTURE) (BUTTON.SPACING (NEW.POSITION HORIZONTAL.SPACING 0)) (TEXT.DISPLACEMENT TEXT.DISPLACEMENT) (TEXT.DISPLACEMENT.%↑ TEXT.DISPLACEMENT.%↑) (HORIZONTAL.ALIGNMENT HORIZONTAL.ALIGNMENT) (VERTICAL.ALIGNMENT VERTICAL.ALIGNMENT) (FONT FONT) (CELL CELL) (INITIAL.VALUE INITIAL.VALUE))) OTHER (FNS ((1 CONVERT.HORIZONTAL.BUTTONS.OFFSETS))) CLASSES (BUTTON COMPOSITE) VERSION 1) (DEFINEQ (CONVERT.HORIZONTAL.BUTTONS.OFFSETS (LAMBDA (ITEM) (* edited: "16-Aug-84 10:53") (PROG NIL (CONVERT.GRIDDED.OFFSET ITEM (QUOTE HORIZONTAL.SPACING)) (CONVERT.GRIDDED.OFFSETSQ ITEM TEXT.DISPLACEMENT TEXT.DISPLACEMENT.↑ TEXT.DISPLACEMENT)))) ) (READ.ITEMTYPE ICONIC.BUTTON 5) (\TYPE ITEM.TYPE NAME ICONIC.BUTTON COMMENT "A touch sensitive backlit icon" KIND COMPOSITE PARAMETERS ((\TYPE PARAMETER NAME PLACEMENT TYPE (POSITION) DEFAULT (100 . 100) COMMENT "The grid position of the lower left corner of the button") (\TYPE PARAMETER NAME PICTURE TYPE ( BITMAP.NAME) DEFAULT EXAMPLE.BITMAP COMMENT "The artwork for the button") (\TYPE PARAMETER NAME CELL TYPE (CELL) DEFAULT CELL.1 COMMENT "The cell to affect and display") (\TYPE PARAMETER NAME VALUE TYPE (CONSTANT) DEFAULT VALUE.1 COMMENT "The value to be set and reflected")) SUBITEM.SPECS ((LABEL ICON (ITEM PICTURE (PLACEMENT PLACEMENT) (BITMAP PICTURE))) (ITEM SENSITIVE.REGION (PLACEMENT ( BOUNDING.BOX ICON)) (ACTION.FORM (LIST (QUOTE CHANGE.CELL) CELL (KWOTE VALUE)))) (ITEM LIGHT ( PLACEMENT (BOUNDING.BOX ICON)) (CELL CELL) (REFERENCE.VALUE VALUE))) CLASSES (BUTTON COMPOSITE) ( QUOTE CLASSES) (BUTTON)) (READ.ITEMTYPE ICONIC.INDICATOR 5) (\TYPE ITEM.TYPE NAME ICONIC.INDICATOR COMMENT "A touch sensitive backlit icon" KIND COMPOSITE PARAMETERS ((\TYPE PARAMETER NAME PLACEMENT TYPE (POSITION) DEFAULT (1700 . 1700) COMMENT "The grid position of the lower left corner of the button" GRID.TYPE (LOCATION)) (\TYPE PARAMETER NAME PICTURE TYPE (BITMAP.NAME) DEFAULT EXAMPLE.BITMAP COMMENT "The artwork for the button") (\TYPE PARAMETER NAME CELL TYPE (CELL) DEFAULT CELL.1 COMMENT "The cell to affect and display") (\TYPE PARAMETER NAME VALUE TYPE (CONSTANT) DEFAULT 1 COMMENT "The value to be set and reflected")) SUBITEM.SPECS ((LABEL ICON (ITEM PICTURE (PLACEMENT PLACEMENT) (BITMAP PICTURE))) (ITEM LIGHT ( PLACEMENT (BOUNDING.BOX ICON)) (CELL CELL) (REFERENCE.VALUE VALUE))) CLASSES (COMPOSITE)) (READ.ITEMTYPE INVERTING.CASCADE 5) (\TYPE ITEM.TYPE NAME INVERTING.CASCADE COMMENT "A cascade which lights its indicators" KIND COMPOSITE PARAMETERS ((\TYPE PARAMETER NAME PLACEMENT TYPE (POSITION) DEFAULT (340 . 255) COMMENT "Offset for the whole bunch" GRID.TYPE (LOCATION)) (\TYPE PARAMETER NAME BUTTONS TYPE (LIST ( STRUCTURE ((TEXT (LIST (STRING))) (VALUE (CONSTANT))))) DEFAULT ((("LABEL 1") VALUE.1) (( "LABEL 2") VALUE2)) COMMENT "The buttons themselves") (\TYPE PARAMETER NAME BUTTON.PICTURE TYPE ( BITMAP.NAME) DEFAULT SIMPLE.BUTTON.BITMAP COMMENT "The graphic for the button") (\TYPE PARAMETER NAME BUTTON/INDICATOR.SPACING TYPE (INTEGER) DEFAULT 51 COMMENT "Spacing between button and bottom indicator") (\TYPE PARAMETER NAME VERTICAL.SPACING TYPE (INTEGER) DEFAULT 34 COMMENT "Between buttons") (\TYPE PARAMETER NAME TEXT.DISPLACEMENT TYPE (OFFSET.VECTOR) DEFAULT (17 . 17) COMMENT "Offset for the text") (\TYPE PARAMETER NAME FONT TYPE (FONT) DEFAULT (HELVETICA 10) COMMENT "The font for the text") (\TYPE PARAMETER NAME HORIZONTAL.ALIGNMENT TYPE ( ONEOF (LEFT CENTER RIGHT)) DEFAULT CENTER COMMENT "Horizontal alignment of the text") (\TYPE PARAMETER NAME VERTICAL.ALIGNMENT TYPE (ONEOF (TOP CENTER BOTTOM)) DEFAULT CENTER COMMENT "Vertical alignment of the text") (\TYPE PARAMETER NAME CONTINUOUS? TYPE (ONEOF (YES NO)) DEFAULT NO COMMENT "Whether or not to keep going if the button is held down") (\TYPE PARAMETER NAME RATE TYPE (INTEGER) DEFAULT 300 COMMENT "Rate it changes (in milliseconds) if continuous") (\TYPE PARAMETER NAME CELL TYPE (CELL) DEFAULT CELL.1 COMMENT "The affected cell") (\TYPE PARAMETER NAME INITIAL.VALUE TYPE (CONSTANT) DEFAULT VALUE.1 COMMENT "An initial value for the cell") (\TYPE PARAMETER NAME SHOW.INITIAL.VALUE? TYPE (ONEOF (YES NO)) DEFAULT YES COMMENT "Whether or not the default is visible - ala 1075")) SUBITEM.SPECS ((ITEM CASCADE.BUTTON (PLACEMENT PLACEMENT) (BUTTONS BUTTONS) (CELL CELL) (PICTURE BUTTON.PICTURE) (CONTINUOUS? CONTINUOUS?) (RATE RATE) (AT.LIMIT (QUOTE WRAP.AROUND)) (DIRECTION (QUOTE UP))) (FOREACH (BUTTON IN (COND ((EQ SHOW.INITIAL.VALUE? (QUOTE YES)) BUTTONS) (T (for B in BUTTONS collect B when (NOT (EQUAL (CADR B) INITIAL.VALUE)))))) (I FROM 0) DO (ITEM INVERTING.CASCADE.LIGHT (PLACEMENT (PTRANSLATE PLACEMENT 0 (IPLUS (ITIMES I VERTICAL.SPACING) BUTTON/INDICATOR.SPACING))) (TEXT (CAR BUTTON)) ( FONT FONT) (TEXT.OFFSET TEXT.DISPLACEMENT) (HORIZONTAL.ALIGNMENT HORIZONTAL.ALIGNMENT) ( VERTICAL.ALIGNMENT VERTICAL.ALIGNMENT) (CELL CELL) (VALUE (CADR BUTTON)))) (ITEM INITIALIZATION ( PLACEMENT PLACEMENT) (ACTION.FORM (LIST (QUOTE SET.CELL) CELL INITIAL.VALUE)))) OTHER (FNS ((1 CONVERT.INVERTING.CASCADE.OFFSETS))) CLASSES (COMPOSITE BUTTON) VERSION 1) (DEFINEQ (CONVERT.INVERTING.CASCADE.OFFSETS (LAMBDA (ITEM) (* edited: "16-Aug-84 12:17") (PROG NIL (CONVERT.GRIDDED.OFFSET ITEM (QUOTE VERTICAL.SPACING)) (CONVERT.GRIDDED.OFFSET ITEM (QUOTE BUTTON/INDICATOR.SPACING)) ( CONVERT.GRIDDED.OFFSETSQ ITEM TEXT.DISPLACEMENT TEXT.DISPLACEMENT.↑ TEXT.DISPLACEMENT)))) ) (READ.ITEMTYPE INVERTING.CASCADE.LIGHT 5) (\TYPE ITEM.TYPE NAME INVERTING.CASCADE.LIGHT COMMENT "An indicator with associated text" KIND COMPOSITE PARAMETERS ((\TYPE PARAMETER NAME PLACEMENT TYPE (POSITION) DEFAULT (170 . 170) COMMENT "A reference grid position" GRID.TYPE (LOCATION)) (\TYPE PARAMETER NAME TEXT TYPE (LIST (STRING)) DEFAULT (Label for Light) COMMENT "The text associated with the light") (\TYPE PARAMETER NAME FONT TYPE (FONT) DEFAULT (HELVETICA 10) COMMENT "The font in which to print the information") (\TYPE PARAMETER NAME TEXT.OFFSET TYPE (OFFSET.VECTOR (PLACEMENT)) DEFAULT (51 . 17) COMMENT "The offset of the words form the lower left corner of the button") (\TYPE PARAMETER NAME HORIZONTAL.ALIGNMENT TYPE (ONEOF (LEFT CENTER RIGHT)) DEFAULT (QUOTE LEFT) COMMENT "Horizontal alignment of text about reference point") (\TYPE PARAMETER NAME VERTICAL.ALIGNMENT TYPE (ONEOF (TOP CENTER BOTTOM)) DEFAULT (QUOTE CENTER) COMMENT "Vertical alignment of text about the reference point") (\TYPE PARAMETER NAME CELL TYPE (CELL) DEFAULT CELL.1 COMMENT "The cell to affect and display") (\TYPE PARAMETER NAME VALUE TYPE (CONSTANT ) DEFAULT VALUE.1 COMMENT "The value to be set and reflected")) SUBITEM.SPECS ((LABEL WORDS (ITEM BLOCK.OF.TEXT (PLACEMENT (PTRANSLATE PLACEMENT TEXT.OFFSET)) (LIST.OF.LINES TEXT) (FONT FONT) ( XALIGNMENT HORIZONTAL.ALIGNMENT) (YALIGNMENT VERTICAL.ALIGNMENT))) (ITEM LIGHT (PLACEMENT ( BOUNDING.BOX WORDS)) (CELL CELL) (REFERENCE.VALUE VALUE))) OTHER (FNS ((1 CONVERT.INVERTING.CASCADE.LIGHT.OFFSETS))) CLASSES (COMPOSITE) VERSION 1) (DEFINEQ (CONVERT.INVERTING.CASCADE.LIGHT.OFFSETS (LAMBDA (ITEM) (* edited: "16-Aug-84 10:07") (CONVERT.GRIDDED.OFFSETSQ ITEM HORIZONTAL.OFFSET VERTICAL.OFFSET TEXT.OFFSET))) ) (READ.ITEMTYPE INVERTING.CASCADE.TWO.BUTTONS 5) (\TYPE ITEM.TYPE NAME INVERTING.CASCADE.TWO.BUTTONS COMMENT "A cascade which lights its indicators" KIND COMPOSITE PARAMETERS ((\TYPE PARAMETER NAME PLACEMENT TYPE (POSITION) DEFAULT (340 . 255) COMMENT "Offset for the whole bunch" GRID.TYPE (LOCATION)) (\TYPE PARAMETER NAME BUTTONS TYPE ( LIST (STRUCTURE ((TEXT (LIST (STRING))) (VALUE (CONSTANT))))) DEFAULT ((("LABEL 1") 1) (( "LABEL 2") 2) (("LABEL 2") 3)) COMMENT "The buttons themselves") (\TYPE PARAMETER NAME BUTTON/INDICATOR.SPACING TYPE (OFFSET.VECTOR) DEFAULT (0 . 51) COMMENT "Spacing between button and bottom indicator") (\TYPE PARAMETER NAME BUTTON.SPACING TYPE ( OFFSET.VECTOR) DEFAULT (51 . 0) COMMENT "Spacing between the buttons") (\TYPE PARAMETER NAME INDICATOR.SPACING TYPE (OFFSET.VECTOR) DEFAULT (0 . 34) COMMENT "Spacing between indicators") ( \TYPE PARAMETER NAME UP.PICTURE TYPE (BITMAP.NAME) DEFAULT UP.BUTTON COMMENT "Bitmap picture for Up button") (\TYPE PARAMETER NAME DOWN.PICTURE TYPE (BITMAP.NAME) DEFAULT DOWN.BUTTON COMMENT "Bitmap picture for Down button") (\TYPE PARAMETER NAME CONTINUOUS? TYPE (ONEOF (YES NO)) DEFAULT NO COMMENT "Whether or not to keep going if the button is held down") (\TYPE PARAMETER NAME RATE TYPE (INTEGER) DEFAULT 300 COMMENT "Rate it changes (in milliseconds) if continuous") (\TYPE PARAMETER NAME AT.LIMIT TYPE (ONEOF ( WRAP.AROUND STICK.AT.LIMIT)) DEFAULT WRAP.AROUND COMMENT "What to do when you reach the limit") ( \TYPE PARAMETER NAME FONT TYPE (FONT) DEFAULT (HELVETICA 10) COMMENT "The font in which to print the information") (\TYPE PARAMETER NAME TEXT.DISPLACEMENT TYPE ( OFFSET.VECTOR) DEFAULT (17 . 17) COMMENT "Offset for the text") (\TYPE PARAMETER NAME HORIZONTAL.ALIGNMENT TYPE (ONEOF (LEFT CENTER RIGHT)) DEFAULT CENTER COMMENT "Horizontal alignment of the text") (\TYPE PARAMETER NAME VERTICAL.ALIGNMENT TYPE (ONEOF (TOP CENTER BOTTOM)) DEFAULT CENTER COMMENT "Vertical alignment of the text") (\TYPE PARAMETER NAME CELL TYPE (CELL) DEFAULT CELL.1 COMMENT "The affected cell") (\TYPE PARAMETER NAME INITIAL.VALUE TYPE ( CONSTANT) DEFAULT VALUE.1 COMMENT "An initial value for the cell") (\TYPE PARAMETER NAME SHOW.INITIAL.VALUE? TYPE (ONEOF (YES NO)) DEFAULT YES COMMENT "Whether or not the default is visible - ala 1075")) SUBITEM.SPECS ((ITEM CASCADE.UP.DOWN.BUTTON ( PLACEMENT PLACEMENT) (INDICATORS BUTTONS) (CELL CELL) (BUTTON.SPACING BUTTON.SPACING) (UP.PICTURE UP.PICTURE) (DOWN.PICTURE DOWN.PICTURE) (CONTINUOUS? CONTINUOUS?) (AT.LIMIT AT.LIMIT) (RATE RATE)) (FOREACH (BUTTON IN (COND ((EQ SHOW.INITIAL.VALUE? (QUOTE YES)) BUTTONS) (T (for B in BUTTONS collect B when (NOT (EQUAL (CADR B) INITIAL.VALUE)))))) (I FROM 0) DO (ITEM INVERTING.CASCADE.LIGHT (PLACEMENT (PTRANSLATE PLACEMENT (NEW.POSITION (IPLUS (ITIMES I (CAR INDICATOR.SPACING)) (CAR BUTTON/INDICATOR.SPACING)) (IPLUS (ITIMES I (CDR INDICATOR.SPACING)) ( CDR BUTTON/INDICATOR.SPACING))))) (TEXT (CAR BUTTON)) (FONT FONT) (TEXT.OFFSET TEXT.DISPLACEMENT) (HORIZONTAL.ALIGNMENT HORIZONTAL.ALIGNMENT) (VERTICAL.ALIGNMENT VERTICAL.ALIGNMENT) (CELL CELL) ( VALUE (CADR BUTTON)))) (ITEM INITIALIZATION (PLACEMENT PLACEMENT) (ACTION.FORM (LIST (QUOTE SET.CELL) CELL (KWOTE INITIAL.VALUE))))) OTHER (FNS ((1 CONVERT.INVERTING.CASCADE.TWO.BUTTONS.OFFSETS))) CLASSES (BUTTON COMPOSITE) VERSION 1) (DEFINEQ (CONVERT.INVERTING.CASCADE.TWO.BUTTONS.OFFSETS (LAMBDA (ITEM) (* edited: "16-Aug-84 12:32") (PROG NIL (CONVERT.GRIDDED.OFFSETSQ ITEM BUTTON/INDICATOR.HORIZONTAL.SPACING BUTTON/INDICATOR.SPACING BUTTON/INDICATOR.SPACING) ( CONVERT.GRIDDED.OFFSETSQ ITEM TEXT.DISPLACEMENT TEXT.DISPLACEMENT.↑ TEXT.DISPLACEMENT) ( CONVERT.GRIDDED.OFFSETSQ ITEM HORIZONTAL.SPACING VERTICAL.SPACING INDICATOR.SPACING) ( CONVERT.GRIDDED.OFFSETSQ ITEM HORIZONTAL.BUTTON.SPACING VERTICAL.BUTTON.SPACING BUTTON.SPACING)))) ) (READ.ITEMTYPE INVERTING.ICONIC.CASCADE.TWO.BUTTONS 5) (\TYPE ITEM.TYPE NAME INVERTING.ICONIC.CASCADE.TWO.BUTTONS COMMENT "A cascade which lights its indicators" KIND COMPOSITE PARAMETERS ((\TYPE PARAMETER NAME PLACEMENT TYPE (POSITION) DEFAULT (340 . 255) COMMENT "Offset for the whole bunch" GRID.TYPE (LOCATION)) ( \TYPE PARAMETER NAME ICONS TYPE (LIST (STRUCTURE ((ICON (BITMAP.NAME)) (VALUE (CONSTANT))))) DEFAULT ((SMALL.SPOT.BITMAP 1) (SMALL.SPOT.BITMAP 2) (SMALL.SPOT.BITMAP 3)) COMMENT "The buttons themselves") (\TYPE PARAMETER NAME BUTTON/INDICATOR.SPACING TYPE (OFFSET.VECTOR) DEFAULT (0 . 51) COMMENT "Spacing between button and bottom indicator") (\TYPE PARAMETER NAME BUTTON.SPACING TYPE (OFFSET.VECTOR) DEFAULT (51 . 0) COMMENT "Spacing between the buttons") (\TYPE PARAMETER NAME UP.PICTURE TYPE (BITMAP.NAME) DEFAULT UP.BUTTON COMMENT "Bitmap picture for Up button") (\TYPE PARAMETER NAME DOWN.PICTURE TYPE (BITMAP.NAME) DEFAULT DOWN.BUTTON COMMENT "Bitmap picture for Down button") (\TYPE PARAMETER NAME INDICATOR.SPACING TYPE (OFFSET.VECTOR) DEFAULT (0 . 34) COMMENT "Spacing between icons") (\TYPE PARAMETER NAME CONTINUOUS? TYPE (ONEOF (YES NO)) DEFAULT NO COMMENT "Whether or not to keep going if the button is held down" ) (\TYPE PARAMETER NAME RATE TYPE (INTEGER) DEFAULT 300 COMMENT "Delay in milliseconds") (\TYPE PARAMETER NAME AT.LIMIT TYPE (ONEOF (WRAP.AROUND STICK.AT.LIMIT)) DEFAULT WRAP.AROUND COMMENT "Delay in milliseconds") (\TYPE PARAMETER NAME CELL TYPE (CELL) DEFAULT CELL.1 COMMENT "The affected cell") (\TYPE PARAMETER NAME INITIAL.VALUE TYPE (CONSTANT) DEFAULT VALUE.1 COMMENT "An initial value for the cell") (\TYPE PARAMETER NAME SHOW.INITIAL.VALUE? TYPE (ONEOF (YES NO)) DEFAULT YES COMMENT "Whether or not the default is visible - ala 1075")) SUBITEM.SPECS ((ITEM CASCADE.UP.DOWN.BUTTONS (PLACEMENT PLACEMENT) (INDICATORS ICONS) (CELL CELL) (BUTTON.SPACING BUTTON.SPACING) (UP.PICTURE UP.PICTURE) (DOWN.PICTURE DOWN.PICTURE) (CONTINUOUS? CONTINUOUS?) ( AT.LIMIT AT.LIMIT) (RATE RATE)) (FOREACH (ICON IN (COND ((EQ SHOW.INITIAL.VALUE? (QUOTE YES)) ICONS) (T (for B in ICONS collect B when (NOT (EQUAL (CADR B) INITIAL.VALUE)))))) (I FROM 0) DO (ITEM ICONIC.INDICATOR (PLACEMENT (PTRANSLATE PLACEMENT (NEW.POSITION (IPLUS (ITIMES I (CAR INDICATOR.SPACING)) (CAR BUTTON/INDICATOR.SPACING)) (IPLUS (ITIMES I (CDR INDICATOR.SPACING)) ( CDR BUTTON/INDICATOR.SPACING))))) (PICTURE (CAR ICON)) (CELL CELL) (VALUE (CADR ICON)))) (ITEM INITIALIZATION (PLACEMENT PLACEMENT) (ACTION.FORM (LIST (QUOTE SET.CELL) CELL (KWOTE INITIAL.VALUE))))) OTHER (FNS ((1 CONVERT.INVERTING.ICONIC.CASCADE.TWO.BUTTONS.OFFSETS))) CLASSES ( BUTTON COMPOSITE) VERSION 1) (DEFINEQ (CONVERT.INVERTING.ICONIC.CASCADE.TWO.BUTTONS.OFFSETS (LAMBDA (ITEM) (* edited: "16-Aug-84 12:43") (PROG NIL (CONVERT.GRIDDED.OFFSETSQ ITEM BUTTON/INDICATOR.HORIZONTAL.SPACING BUTTON/INDICATOR.SPACING BUTTON/INDICATOR.SPACING) ( CONVERT.GRIDDED.OFFSETSQ ITEM HORIZONTAL.SPACING VERTICAL.SPACING INDICATOR.SPACING) ( CONVERT.GRIDDED.OFFSETSQ ITEM HORIZONTAL.BUTTON.SPACING VERTICAL.BUTTON.SPACING BUTTON.SPACING)))) ) (READ.ITEMTYPE LINE.OF.TEXT 5) (\TYPE ITEM.TYPE NAME LINE.OF.TEXT COMMENT "A located line of text" KIND COMPOSITE PARAMETERS (( \TYPE PARAMETER NAME PLACEMENT TYPE (POSITION) DEFAULT (100 . 100) COMMENT "The left baseline of the first character of the line") (\TYPE PARAMETER NAME LINE TYPE (STRING) DEFAULT "The text of a LINE.OF.TEXT" COMMENT "The line of text itself") (\TYPE PARAMETER NAME XALIGNMENT TYPE (ONEOF (LEFT CENTER RIGHT)) DEFAULT LEFT COMMENT "Horizontal alignment") (\TYPE PARAMETER NAME FONT TYPE (FONT) DEFAULT (GACHA 10) COMMENT "The font the line is to be printed in") (\TYPE PARAMETER NAME SOURCE TYPE (ONEOF (INPUT INVERT MERGE TEXTURE)) DEFAULT INPUT COMMENT "Source for BITBLT") (\TYPE PARAMETER NAME OPERATION TYPE (ONEOF (REPLACE PAINT INVERT ERASE)) DEFAULT REPLACE COMMENT "Operation for BITBLT") (\TYPE PARAMETER NAME TEXTURE TYPE (SHADE) DEFAULT 65535 COMMENT "Texture for BITBLT") (\TYPE PARAMETER NAME FIGURE-COLOR TYPE (COLOR.NAME) DEFAULT BLACK COMMENT "The color corresponding to the figure") (\TYPE PARAMETER NAME GROUND-COLOR TYPE ( COLOR.NAME) DEFAULT WHITE COMMENT "The color corresponding to ground")) SUBITEM.SPECS ((EVAL ( ANALYZE.LINE.OF.TEXT) (PICTURE))) OTHER (FNS ((ANALYZE ANALYZE.LINE.OF.TEXT))) CLASSES (COMPOSITE) ) (DEFINEQ (ANALYZE.LINE.OF.TEXT (LAMBDA (ITEM) (* HaKo " 6-Aug-84 15:19") (* DAHJr "13-JAN-83 09:11") (PROG ((XCOORD (fetch (POSITION XCOORD) of PLACEMENT)) (YCOORD (fetch (POSITION YCOORD) of PLACEMENT)) (FONT.DESCRIPTOR (FIND.FONT FONT)) HEIGHT WIDTH DESCENT BITMAP DISPLAY.STREAM TX) (SETQ HEIGHT (FONTPROP FONT.DESCRIPTOR (QUOTE HEIGHT))) (SETQ WIDTH (STRINGWIDTH LINE FONT.DESCRIPTOR)) (SETQ DESCENT (FONTPROP FONT.DESCRIPTOR ( QUOTE DESCENT))) (SETQ BITMAP (BITMAPCREATE WIDTH HEIGHT)) (SETQ DISPLAY.STREAM (OR ANALYZE.LOT.DSP ( SETQ ANALYZE.LOT.DSP (DSPCREATE)))) (DSPDESTINATION BITMAP DISPLAY.STREAM) (DSPFONT FONT.DESCRIPTOR DISPLAY.STREAM) (DSPXPOSITION 0 DISPLAY.STREAM) (DSPYPOSITION DESCENT DISPLAY.STREAM) (PRIN1 LINE DISPLAY.STREAM) (SETQ TX (SELECTQ XALIGNMENT (LEFT XCOORD) (CENTER (IDIFFERENCE XCOORD (IQUOTIENT WIDTH 2))) (RIGHT (IDIFFERENCE XCOORD WIDTH)) (SHOULDNT "Unrecognized keyword in ANALYZE.LINE.OF.TEXT" ))) (RETURN (LIST (ITEM.CREATE PICTURE (PLACEMENT (create POSITION XCOORD ← TX YCOORD ← (IDIFFERENCE YCOORD DESCENT))) (BITMAP BITMAP) (SOURCE SOURCE) (OPERATION OPERATION) (TEXTURE TEXTURE) ( FIGURE-COLOR FIGURE-COLOR) (GROUND-COLOR GROUND-COLOR))))))) ) (READ.ITEMTYPE NUMBER.BUTTON 5) (\TYPE ITEM.TYPE NAME NUMBER.BUTTON COMMENT "A small button, with a label on it, which flashes when pushed, and does internal action" KIND COMPOSITE PARAMETERS ((\TYPE PARAMETER NAME PLACEMENT TYPE (POSITION) DEFAULT (170 . 170) COMMENT "The grid position of the lower left corner of the button" GRID.TYPE (LOCATION)) (\TYPE PARAMETER NAME LABEL TYPE (STRING) DEFAULT 1 COMMENT "The words above this button") (\TYPE PARAMETER NAME FONT TYPE (FONT) DEFAULT NIL COMMENT "The font for the button label") (\TYPE PARAMETER NAME CELL TYPE (CELL) DEFAULT CELL.1 COMMENT "The cell affected by this button") (\TYPE PARAMETER NAME DIGIT TYPE (INTEGER) DEFAULT 1 COMMENT "The digit added to the number in the cell") (\TYPE PARAMETER NAME PICTURE TYPE (BITMAP.NAME) DEFAULT SIMPLE.BUTTON.BITMAP COMMENT "The graphic for the button")) SUBITEM.SPECS ((LABEL BUTTON (ITEM PICTURE (PLACEMENT (PTRANSLATE PLACEMENT (MINUS BUTTON.BITMAP.EXTRA) 0)) (BITMAP PICTURE))) (ITEM LINE.OF.TEXT (PLACEMENT (PICTURE.CENTER BUTTON)) (LINE LABEL) (XALIGNMENT (QUOTE CENTER)) (FONT FONT)) (ITEM FLASHING.SENSITIVE.REGION ( PLACEMENT (BOUNDING.BOX BUTTON)) (ACTION.FORM (LIST (QUOTE CHANGE.CELL) CELL (KWOTE DIGIT))))) CLASSES (BUTTON COMPOSITE) (QUOTE CLASSES) (BUTTON)) (READ.ITEMTYPE NUMBER.BUTTON.ADD.CELL 5) (\TYPE ITEM.TYPE NAME NUMBER.BUTTON.ADD.CELL COMMENT "A small button, with a label on it, which flashes when pushed, and does internal action" KIND COMPOSITE PARAMETERS ((\TYPE PARAMETER NAME PLACEMENT TYPE (POSITION) DEFAULT (170 . 170) COMMENT "The grid position of the lower left corner of the button" GRID.TYPE (LOCATION)) (\TYPE PARAMETER NAME LABEL TYPE (STRING) DEFAULT 1 COMMENT "The words above this button") (\TYPE PARAMETER NAME FONT TYPE (FONT) DEFAULT NIL COMMENT "The font for the button label") (\TYPE PARAMETER NAME CELL TYPE (CELL) DEFAULT CELL.1 COMMENT "The cell affected by this button") (\TYPE PARAMETER NAME HOW.MUCH.TO.ADD.CELL TYPE (CELL) DEFAULT CELL.1 COMMENT "The cell affected by this button") (\TYPE PARAMETER NAME ADD.OR.SUBTRACT TYPE (ONEOF (ADD SUBTRACT)) DEFAULT ADD COMMENT "The operation") ( \TYPE PARAMETER NAME DIGIT TYPE (INTEGER) DEFAULT 1 COMMENT "The digit added to the number in the cell") (\TYPE PARAMETER NAME PICTURE TYPE (BITMAP.NAME) DEFAULT SIMPLE.BUTTON.BITMAP COMMENT "The graphic for the button")) SUBITEM.SPECS ((LABEL BUTTON ( ITEM PICTURE (PLACEMENT (PTRANSLATE PLACEMENT (NEW.POSITION (MINUS BUTTON.BITMAP.EXTRA) 0))) ( BITMAP PICTURE))) (ITEM LINE.OF.TEXT (PLACEMENT (PICTURE.CENTER BUTTON)) (LINE LABEL) (XALIGNMENT (QUOTE CENTER)) (FONT FONT)) (ITEM FLASHING.SENSITIVE.REGION (PLACEMENT (BOUNDING.BOX BUTTON)) (ACTION.FORM (BQUOTE (CHANGE.CELL , CELL (, (COND ((EQ ADD.OR.SUBTRACT (QUOTE ADD)) (QUOTE IPLUS)) (T (QUOTE IDIFFERENCE))) (CELL.VALUE , CELL) (CELL.VALUE , HOW.MUCH.TO.ADD.CELL))))))) CLASSES (COMPOSITE)) (READ.ITEMTYPE NUMBER.BUTTON.ADD.VALUE 5) (\TYPE ITEM.TYPE NAME NUMBER.BUTTON.ADD.VALUE COMMENT "A small button, with a label on it, which flashes when pushed, and does internal action" KIND COMPOSITE PARAMETERS ((\TYPE PARAMETER NAME PLACEMENT TYPE (POSITION) DEFAULT (170 . 170) COMMENT "The grid position of the lower left corner of the button" GRID.TYPE (LOCATION)) (\TYPE PARAMETER NAME LABEL TYPE (STRING) DEFAULT 1 COMMENT "The words above this button") (\TYPE PARAMETER NAME FONT TYPE (FONT) DEFAULT NIL COMMENT "The font for the button label") (\TYPE PARAMETER NAME CELL TYPE (CELL) DEFAULT CELL.1 COMMENT "The cell affected by this button") (\TYPE PARAMETER NAME DIGIT TYPE (INTEGER) DEFAULT 1 COMMENT "The digit added to the number in the cell") (\TYPE PARAMETER NAME PICTURE TYPE (BITMAP.NAME) DEFAULT SIMPLE.BUTTON.BITMAP COMMENT "The graphic for the button")) SUBITEM.SPECS ((LABEL BUTTON (ITEM PICTURE (PLACEMENT (PTRANSLATE PLACEMENT (NEW.POSITION (MINUS BUTTON.BITMAP.EXTRA) 0))) (BITMAP PICTURE))) (ITEM LINE.OF.TEXT (PLACEMENT (PICTURE.CENTER BUTTON )) (LINE LABEL) (XALIGNMENT (QUOTE CENTER)) (FONT FONT)) (ITEM FLASHING.SENSITIVE.REGION ( PLACEMENT (BOUNDING.BOX BUTTON)) (ACTION.FORM (BQUOTE (CHANGE.CELL , CELL (IPLUS (CELL.VALUE , CELL) , DIGIT)))))) CLASSES (COMPOSITE)) (READ.ITEMTYPE NUMBER.BUTTON.NEXT.DIGIT 5) (\TYPE ITEM.TYPE NAME NUMBER.BUTTON.NEXT.DIGIT COMMENT "A small button, with a label on it, which flashes when pushed, and does internal action" KIND COMPOSITE PARAMETERS ((\TYPE PARAMETER NAME PLACEMENT TYPE (POSITION) DEFAULT (170 . 170) COMMENT "The grid position of the lower left corner of the button" GRID.TYPE (LOCATION)) (\TYPE PARAMETER NAME LABEL TYPE (STRING) DEFAULT 1 COMMENT "The words above this button") (\TYPE PARAMETER NAME FONT TYPE (FONT) DEFAULT NIL COMMENT "The font for the label") (\TYPE PARAMETER NAME CELL TYPE ( CELL) DEFAULT CELL.1 COMMENT "The cell affected by this button") (\TYPE PARAMETER NAME DIGIT TYPE ( INTEGER) DEFAULT 1 COMMENT "The digit added to the number in the cell") (\TYPE PARAMETER NAME PICTURE TYPE (BITMAP.NAME) DEFAULT SIMPLE.BUTTON.BITMAP COMMENT "The graphic for the button")) SUBITEM.SPECS ((LABEL BUTTON (ITEM PICTURE (PLACEMENT (PTRANSLATE PLACEMENT (NEW.POSITION (MINUS BUTTON.BITMAP.EXTRA) 0))) (BITMAP PICTURE))) (ITEM LINE.OF.TEXT (PLACEMENT (PICTURE.CENTER BUTTON )) (LINE LABEL) (XALIGNMENT (QUOTE CENTER)) (FONT FONT)) (ITEM FLASHING.SENSITIVE.REGION ( PLACEMENT (BOUNDING.BOX BUTTON)) (ACTION.FORM (LIST (QUOTE NEXT.DIGIT.CELL) CELL (KWOTE DIGIT)))) ) CLASSES (BUTTON COMPOSITE) (QUOTE CLASSES) (BUTTON)) (READ.ITEMTYPE NUMBER.PAD 5) (\TYPE ITEM.TYPE NAME NUMBER.PAD COMMENT "A classic Xerox number pad, putting its value in a cell" KIND COMPOSITE PARAMETERS ((\TYPE PARAMETER NAME PLACEMENT TYPE (POSITION) DEFAULT (170 . 170) COMMENT "The lower left corner of the number pad" GRID.TYPE (LOCATION)) (\TYPE PARAMETER NAME CELL TYPE (CELL) DEFAULT CELL.1 COMMENT "The cell affected by pushing the pad's buttons") (\TYPE PARAMETER NAME INITIAL.VALUE TYPE (INTEGER) DEFAULT 1 COMMENT "How to initialize the cell when entering the frame") (\TYPE PARAMETER NAME PICTURE TYPE ( BITMAP.NAME) DEFAULT SIMPLE.BUTTON.BITMAP COMMENT "The graphic for the button") (\TYPE PARAMETER NAME FONT TYPE (FONT) DEFAULT (GACHA 10) COMMENT "The font for the button labels") (\TYPE PARAMETER NAME BORDER.THICKNESS TYPE (INTEGER) DEFAULT 2 COMMENT "The thickness in screen points of the border") (\TYPE PARAMETER NAME BORDER.COLOR TYPE (SHADE) DEFAULT 65535 COMMENT "The color of the border") (\TYPE PARAMETER NAME PRINT.FONT TYPE (FONT) DEFAULT (HELVETICA 10) COMMENT "The font of the print region") (\TYPE PARAMETER NAME PRINT.MARGIN TYPE (INTEGER) DEFAULT 2 COMMENT "The margin of the printing region") (\TYPE PARAMETER NAME PRINT.BACKGROUND TYPE (SHADE) DEFAULT 0 COMMENT "The background of the printing region") (\TYPE PARAMETER NAME PRINT.SOURCE TYPE (ONEOF (INPUT INVERT MERGE TEXTURE)) DEFAULT INPUT COMMENT "How the texture is combined with the print") (\TYPE PARAMETER NAME PRINT.OPERATION TYPE (ONEOF ( REPLACE PAINT INVERT ERASE)) DEFAULT REPLACE COMMENT "How the print is combined with the background") ) SUBITEM.SPECS ((ITEM VALUE.BAR (PLACEMENT (NEW.REGION (PTRANSLATE PLACEMENT 0 204) 136 34)) ( CELL CELL) (XALIGNMENT (QUOTE CENTER)) (YALIGNMENT (QUOTE CENTER)) (FONT PRINT.FONT) ( BORDER.THICKNESS BORDER.THICKNESS) (BORDER.COLOR BORDER.COLOR) (PRINT.MARGIN PRINT.MARGIN) ( PRINT.BACKGROUND PRINT.BACKGROUND) (PRINT.SOURCE PRINT.SOURCE) (PRINT.OPERATION PRINT.OPERATION)) ( ITEM INITIALIZATION (PLACEMENT PLACEMENT) (ACTION.FORM (LIST (QUOTE SET.CELL) CELL (KWOTE INITIAL.VALUE)))) (ITEM NUMBER.BUTTON.NEXT.DIGIT (LABEL 1) (PLACEMENT (TRANSLATE PLACEMENT 0 9)) (CELL CELL) (DIGIT 1) (PICTURE PICTURE) (FONT FONT)) (ITEM NUMBER.BUTTON.NEXT.DIGIT (LABEL 2) ( PLACEMENT (TRANSLATE PLACEMENT 3 9)) (CELL CELL) (DIGIT 2) (PICTURE PICTURE) (FONT FONT)) (ITEM NUMBER.BUTTON.NEXT.DIGIT (LABEL 3) (PLACEMENT (TRANSLATE PLACEMENT 6 9)) (CELL CELL) (DIGIT 3) ( PICTURE PICTURE) (FONT FONT)) (ITEM NUMBER.BUTTON.NEXT.DIGIT (LABEL 4) (PLACEMENT (TRANSLATE PLACEMENT 0 6)) (CELL CELL) (DIGIT 4) (PICTURE PICTURE) (FONT FONT)) (ITEM NUMBER.BUTTON.NEXT.DIGIT (LABEL 5) (PLACEMENT (TRANSLATE PLACEMENT 3 6)) (CELL CELL) (DIGIT 5) ( PICTURE PICTURE) (FONT FONT)) (ITEM NUMBER.BUTTON.NEXT.DIGIT (LABEL 6) (PLACEMENT (TRANSLATE PLACEMENT 6 6)) (CELL CELL) (DIGIT 6) (PICTURE PICTURE) (FONT FONT)) (ITEM NUMBER.BUTTON.NEXT.DIGIT (LABEL 7) (PLACEMENT (TRANSLATE PLACEMENT 0 3)) (CELL CELL) (DIGIT 7) ( PICTURE PICTURE) (FONT FONT)) (ITEM NUMBER.BUTTON.NEXT.DIGIT (LABEL 8) (PLACEMENT (TRANSLATE PLACEMENT 3 3)) (CELL CELL) (DIGIT 8) (PICTURE PICTURE) (FONT FONT)) (ITEM NUMBER.BUTTON.NEXT.DIGIT (LABEL 9) (PLACEMENT (TRANSLATE PLACEMENT 6 3)) (CELL CELL) (DIGIT 9) ( PICTURE PICTURE) (FONT FONT)) (ITEM GENERAL.BUTTON (TEXT (QUOTE (""))) (PLACEMENT PLACEMENT) ( ACTION (LIST (QUOTE ACTION.DONOTHING))) (PICTURE PICTURE) (FONT FONT)) (ITEM NUMBER.BUTTON.NEXT.DIGIT (LABEL 0) (PLACEMENT (TRANSLATE PLACEMENT 3 0)) (CELL CELL) (DIGIT 0) ( PICTURE PICTURE) (FONT FONT)) (ITEM NUMBER.BUTTON (LABEL "C") (PLACEMENT (TRANSLATE PLACEMENT 6 0)) (CELL CELL) (DIGIT 0) (PICTURE PICTURE) (FONT FONT))) CLASSES (BUTTON COMPOSITE) (QUOTE CLASSES) (BUTTON)) (READ.ITEMTYPE OFFPAGE.BUTTON 5) (\TYPE ITEM.TYPE NAME OFFPAGE.BUTTON COMMENT "A general button" KIND COMPOSITE PARAMETERS ((\TYPE PARAMETER NAME PLACEMENT TYPE (POSITION) DEFAULT (170 . 170) COMMENT "The grid position of the lower left corner of the button" GRID.TYPE (LOCATION)) (\TYPE PARAMETER NAME PICTURE TYPE (BITMAP.NAME) DEFAULT OFFPAGE.BUTTON.BITMAP COMMENT "The artwork for the button") (\TYPE PARAMETER NAME LIST.OF.LINES TYPE (LIST (STRING)) DEFAULT ("Return") COMMENT "The words associated with the button") (\TYPE PARAMETER NAME TEXT.OFFSET TYPE (OFFSET.VECTOR ( PLACEMENT)) DEFAULT (34 . 51) COMMENT "The offset of the words form the lower left corner of the button") (\TYPE PARAMETER NAME HORIZONTAL.ALIGNMENT TYPE (ONEOF (LEFT CENTER RIGHT)) DEFAULT CENTER COMMENT "Horizontal alignment of text about reference point") (\TYPE PARAMETER NAME VERTICAL.ALIGNMENT TYPE (ONEOF (TOP CENTER BOTTOM)) DEFAULT BOTTOM COMMENT "Vertical alignment of text about the reference point") (\TYPE PARAMETER NAME FONT TYPE (FONT) DEFAULT NIL COMMENT "Font in which to print the label") (\TYPE PARAMETER NAME SOURCE TYPE (ONEOF ( INPUT)) DEFAULT INPUT COMMENT "The source for BITBLT for the labels") (\TYPE PARAMETER NAME OPERATION TYPE (ONEOF (REPLACE INVERT PAINT ERASE)) DEFAULT INVERT COMMENT "The operation for BITBLT for the labels") (\TYPE PARAMETER NAME RESPONSE TYPE (ONEOF (NONE BLACK.WHILE.DEPRESSED INVERTS.WHEN.DEPRESSED)) DEFAULT BLACK.WHILE.DEPRESSED COMMENT "The response to being depressed") (\TYPE PARAMETER NAME ACTION.FORM TYPE (FORM) DEFAULT (FRAME.POP ) COMMENT "Action: (FRAME.PUSH frame), (FRAME.POP frame/NIL) or (FRAME.GOTO frame)")) SUBITEM.SPECS ((ITEM GENERAL.BUTTON (PLACEMENT PLACEMENT) (PICTURE PICTURE) (TEXT LIST.OF.LINES) (TEXT.OFFSET TEXT.OFFSET) (HORIZONTAL.ALIGNMENT HORIZONTAL.ALIGNMENT) (VERTICAL.ALIGNMENT VERTICAL.ALIGNMENT) ( FONT FONT) (SOURCE SOURCE) (OPERATION OPERATION) (RESPONSE RESPONSE) (ACTION ACTION.FORM))) OTHER (FNS ((1 CONVERT.OFFPAGE.BUTTON.OFFSETS))) CLASSES (BUTTON COMPOSITE) VERSION 1) (DEFINEQ (CONVERT.OFFPAGE.BUTTON.OFFSETS (LAMBDA (ITEM) (* edited: "16-Aug-84 10:07") (CONVERT.GRIDDED.OFFSETSQ ITEM HORIZONTAL.OFFSET VERTICAL.OFFSET TEXT.OFFSET))) ) (READ.ITEMTYPE PRIVATE.DATA.STAMP 5) (\TYPE ITEM.TYPE NAME PRIVATE.DATA.STAMP COMMENT "A bitmap that looks like a Xerox Private Data Stamp, which can be added to the screen as artwrok" KIND COMPOSITE PARAMETERS ((\TYPE PARAMETER NAME PLACEMENT TYPE (POSITION) DEFAULT (100 . 100) COMMENT "The lower left corner of the bitmap") (\TYPE PARAMETER NAME STAMP.SIZE TYPE (ONEOF (SMALL LARGE)) DEFAULT SMALL COMMENT "Whether the private data stamp is large or small") (\TYPE PARAMETER NAME SOURCE TYPE (ONEOF (INPUT INVERT MERGE TEXTURE)) DEFAULT INPUT COMMENT "Source for BITBLT") ( \TYPE PARAMETER NAME OPERATION TYPE (ONEOF (REPLACE PAINT INVERT ERASE)) DEFAULT REPLACE COMMENT "Operation for BITBLT") (\TYPE PARAMETER NAME TEXTURE TYPE (SHADE) DEFAULT 65535 COMMENT "Texture for BITBLT") (\TYPE PARAMETER NAME FIGURE-COLOR TYPE (COLOR.NAME) DEFAULT BLACK COMMENT "The color corresponding to the figure") (\TYPE PARAMETER NAME GROUND-COLOR TYPE (COLOR.NAME) DEFAULT WHITE COMMENT "The color corresponding to ground")) SUBITEM.SPECS ((ITEM PICTURE (PLACEMENT PLACEMENT) (BITMAP (COND ((EQ STAMP.SIZE (QUOTE LARGE)) (QUOTE PRIVATE.DATA.STAMP.LARGE)) (T ( QUOTE PRIVATE.DATA.STAMP.SMALL)))) (SOURCE SOURCE) (OPERATION OPERATION) (TEXTURE TEXTURE) ( FIGURE-COLOR FIGURE-COLOR) (GROUND-COLOR GROUND-COLOR))) OTHER (BITMAPS ((PRIVATE.DATA.STAMP.SMALL {(READBITMAP)(80 40 "OOOOOOOOOOOOOOOOOOOO" "H@@@@@@@@@@@@@@@@@@A" "KOOOOOOOOOOOOOOOOOOM" "J@@@@@@@@@@@@@@@@@@E" "J@@@@@@@@@@@@@@@@@@E" "J@@@@@@@@@@@@@@@@@@E" "J@@@GO@@@@@@@@@@@@@E" "J@@BOOL@@@@@@@@@@@@E" "J@@NOOMH@DB@@@@@@@@E" "J@AOGOKL@BDFBIHHH@@E" "J@COGOKN@AHICJDE@@@E" "J@GOKOGO@AHOBBDB@@@E" "J@OOKOGOHBDHBBDE@@@E" "J@OOKNOO@DBGBAHHH@@E" "JACOMNONL@@@@@@@@@@E" "JALOMMOIL@@@@@@@@@@E" "JAOCNMNGL@@@H@@@@@@E" "JCOLNKIONGH@@@@B@@@E" "JCOO@@GONDDJJBFGC@@E" "JCOOLAOONDDNIDIBDH@E" "JCOOLAOONGHHIDGBGH@E" "JCOOL@OOND@HHHIBD@@E" "JCOOBCCOND@HHHNKCH@E" "JCOLOGLON@@@@@@@@@@E" "JAOCMEOCL@@@@@@@@@@E" "JANOMEOLL@@@@@@@@@@E" "JAIOJBOO@GH@B@@@@@@E" "J@GOJBOOHDDFGC@@@@@E" "J@OODBOOHDDIBDH@@@@E" "J@GODAGO@DDGBCH@@@@E" "J@CNHAGN@DDIBDH@@@@E" "J@ANH@KL@GHNKGD@@@@E" "J@@NH@KH@@@@@@@@@@@E" "J@@@H@J@@@@@@@@@@@@E" "J@@@GO@@@@@@@@@@@@@E" "J@@@@@@@@@@@@@@@@@@E" "J@@@@@@@@@@@@@@@@@@E" "KOOOOOOOOOOOOOOOOOOM" "H@@@@@@@@@@@@@@@@@@A" "OOOOOOOOOOOOOOOOOOOO")}) (PRIVATE.DATA.STAMP.LARGE {(READBITMAP)(123 72 "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@" "COOOOOOOOOOOOOOOOOOOOOOOOOOOOON@" "B@@@@@@@@@@@@@@@@@@@@@@@@@@@@@B@" "B@@@@@@@@@@@@@@@@@@@@@@@@@@@@@B@" "BGOOOOOOOOOOOOOOOOOOOOOOOOOOOOB@" "BD@@@@@@@@@@@@@@@@@@@@@@@@@@@AB@" "BD@@@@@@@@@@@@@@@@@@@@@@@@@@@AB@" "BD@@@@@@@@@@@@@@@@@@@@@@@@@@@AB@" "BD@@@@@@@@@@@@@@@@@@@@@@@@@@@AB@" "BD@@@@@@@@@@@@@@@@@@@@@@@@@@@AB@" "BD@@@@@@@@@@@@@@@@@@@@@@@@@@@AB@" "BD@@@@@@@@@@@@@@@@@@@@@@@@@@@AB@" "BD@@@@COOH@@@@@@@@@@@@@@@@@@@AB@" "BD@@@DOOON@@@@@@@@@@@@@@@@@@@AB@" "BD@@ALOOONF@@@@@@@@@@@@@@@@@@AB@" "BD@@CLGOOLGH@@@FAH@@@@@@@@@@@AB@" "BD@@GNCOOHOL@@@FAH@@@@@@@@@@@AB@" "BD@@OOCOOION@@@CC@@@@@@@@@@@@AB@" "BD@AOOAOOAOO@@@ANAOCNGLLL@@@@AB@" "BD@COOIOOCOOH@@@LCAKFLFLL@@@@AB@" "BD@GOOHONCOOL@@@LCAK@LFGH@@@@AB@" "BD@GOOLONGOOL@@ANCOK@LFC@@@@@AB@" "BD@OOOLGLGOON@@CCC@C@LFGH@@@@AB@" "BD@OOONGLOOON@@FAKAK@LFLL@@@@AB@" "BD@OOONGLOOON@@FAIOC@GLLL@@@@AB@" "BD@AOOOCIOON@@@@@@@@@@@@@@@@@AB@" "BD@@COOKKOO@@H@@@@@@@@@@@@@@@AB@" "BDAL@OOICOL@GH@@@@@@@@@@@@@@@AB@" "BDCO@CN@AO@AOL@@@@@@@@@@@@@@@AB@" "BDCON@DGLH@OOL@@@@@@@@@@@@@@@AB@" "BDCOOL@HB@GOOL@@@@@@@@@@@@@@@AB@" "BDCOOOA@AAOOOL@@@@@@@@@@@@@@@AB@" "BDCOOOJ@@KOOOL@OL@C@@@@@@@@@@AB@" "BDCOOOJ@@KOOOL@LF@C@@@@AH@@@@AB@" "BDCOOOJ@@KOOOL@LF@@@@@@AH@@@@AB@" "BDCOOOJ@@KOOOL@LFOKFAINCNGL@@AB@" "BDCOOOB@@IOOOL@LFMKFAKCAHLF@@AB@" "BDCOOLA@A@GOOL@OLLCCC@CAHLF@@AB@" "BDCOO@LHBF@OOL@L@LCCCAOAHON@@AB@" "BDCOHCNDDOHAOL@L@LCABCCAHL@@@AB@" "BDAL@OODEON@GH@L@LCANCCAHLF@@AB@" "BDA@CONDDOOHAH@L@LC@LAMHNGL@@AB@" "BD@@OONDDOON@@@@@@@@@@@@@@@@@AB@" "BD@COOLDDGOOH@@@@@@@@@@@@@@@@AB@" "BD@OOOLHBGOON@@@@@@@@@@@@@@@@AB@" "BDAOOOLHBGOOO@@@@@@@@@@@@@@@@AB@" "BDAOOOHHBCOOO@@@@@@@@@@@@@@@@AB@" "BD@OOOI@ACOON@@@@@@@@@@@@@@@@AB@" "BD@OOOI@ACOON@@@@@@@@@@@@@@@@AB@" "BD@GOOI@ACOOL@@OL@@@@@@@@@@@@AB@" "BD@COOB@@IOOH@@LF@@C@@@@@@@@@AB@" "BD@AOOB@@IOO@@@LC@@C@@@@@@@@@AB@" "BD@@ONB@@HON@@@LCCLGLO@@@@@@@AB@" "BD@@GNB@@HOL@@@LCFFCAIH@@@@@@AB@" "BD@@CNB@@HOH@@@LC@FC@AH@@@@@@AB@" "BD@@ALD@@DG@@@@LCCNC@OH@@@@@@AB@" "BD@@@DD@@DD@@@@LCFFCAIH@@@@@@AB@" "BD@@@@G@AL@@@@@LFFFCAIH@@@@@@AB@" "BD@@@@@ON@@@@@@OLCKALNL@@@@@@AB@" "BD@@@@@@@@@@@@@@@@@@@@@@@@@@@AB@" "BD@@@@@@@@@@@@@@@@@@@@@@@@@@@AB@" "BD@@@@@@@@@@@@@@@@@@@@@@@@@@@AB@" "BD@@@@@@@@@@@@@@@@@@@@@@@@@@@AB@" "BD@@@@@@@@@@@@@@@@@@@@@@@@@@@AB@" "BD@@@@@@@@@@@@@@@@@@@@@@@@@@@AB@" "BD@@@@@@@@@@@@@@@@@@@@@@@@@@@AB@" "BGOOOOOOOOOOOOOOOOOOOOOOOOOOOOB@" "B@@@@@@@@@@@@@@@@@@@@@@@@@@@@@B@" "B@@@@@@@@@@@@@@@@@@@@@@@@@@@@@B@" "COOOOOOOOOOOOOOOOOOOOOOOOOOOOON@" "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@" "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@")}))) CLASSES (COMPOSITE)) (READ.ITEMTYPE SEGMENT.LINE 5) (\TYPE ITEM.TYPE NAME SEGMENT.LINE COMMENT "A straight line between grid positions" KIND COMPOSITE PARAMETERS ((\TYPE PARAMETER NAME PLACEMENT TYPE (POSITION2) DEFAULT (170 170 340 340 NIL) COMMENT "The endpoints of the line" GRID.TYPE (LOCATION2)) (\TYPE PARAMETER NAME WIDTH TYPE (INTEGER) DEFAULT 4 COMMENT "The width of the line in screen points")) SUBITEM.SPECS ((ITEM STRAIGHT.LINE ( PLACEMENT PLACEMENT) (WIDTH WIDTH))) CLASSES (COMPOSITE)) (READ.ITEMTYPE SENSITIVE.REGION.CHANGE.FRAME 5) (\TYPE ITEM.TYPE NAME SENSITIVE.REGION.CHANGE.FRAME COMMENT "A general button" KIND COMPOSITE PARAMETERS ((\TYPE PARAMETER NAME PLACEMENT TYPE (REGION) DEFAULT (100 100 50 50) COMMENT "The bounds of the sensitive region") (\TYPE PARAMETER NAME STACK.OPERATION TYPE (ONEOF (NO.CHANGE PUSH POP)) DEFAULT PUSH COMMENT "How to change the stack of frames") (\TYPE PARAMETER NAME INITIALIZATION TYPE (ONEOF (INITIALIZE DO.NOT.INITIALIZE)) DEFAULT INITIALIZE COMMENT "Whether or not to do initialization of the frame") (\TYPE PARAMETER NAME FRAME TYPE (FRAME) DEFAULT BEGIN COMMENT "The frame to push to")) SUBITEM.SPECS ((ITEM FLASHING.SENSITIVE.REGION (PLACEMENT PLACEMENT) (ACTION.FORM (BUILD.STACK.OPERATION STACK.OPERATION FRAME INITIALIZATION)))) CLASSES ( COMPOSITE)) (READ.ITEMTYPE SET.OF.ICONIC.BUTTONS 5) (\TYPE ITEM.TYPE NAME SET.OF.ICONIC.BUTTONS COMMENT "A set of backlit icons, each of which is touch-sensitive" KIND COMPOSITE PARAMETERS ((\TYPE PARAMETER NAME PLACEMENT TYPE (POSITION) DEFAULT (340 . 255) COMMENT "Offset for the whole bunch" GRID.TYPE (LOCATION)) (\TYPE PARAMETER NAME BUTTONS TYPE (LIST (STRUCTURE ((ICON (BITMAP.NAME)) (VALUE (CONSTANT))))) DEFAULT ((EXAMPLE.BITMAP VALUE.1) (EXAMPLE.BITMAP VALUE.2)) COMMENT "The buttons themselves") (\TYPE PARAMETER NAME BUTTON.SPACING TYPE (OFFSET.VECTOR) DEFAULT (0 . 30 ) COMMENT "Between buttons") (\TYPE PARAMETER NAME CELL TYPE (CELL) DEFAULT CELL.1 COMMENT "The affected cell") (\TYPE PARAMETER NAME INITIAL.VALUE TYPE (CONSTANT) DEFAULT VALUE.1 COMMENT "An initial value for the cell")) SUBITEM.SPECS ((FOREACH (B IN BUTTONS) (I FROM 0 BY 0) (J FROM 0 BY 0) DO (LABEL BUTTON (ITEM ICONIC.BUTTON (PLACEMENT (PTRANSLATE PLACEMENT I J)) (PICTURE (CAR B)) (CELL CELL) (VALUE (CADR B)))) (IF (NOT (ZEROP (CAR BUTTON.SPACING))) THEN (INCREMENT I (REGION.WIDTH (BOUNDING.BOX BUTTON))) (INCREMENT I (CAR BUTTON.SPACING))) (IF (NOT (ZEROP (CDR BUTTON.SPACING))) THEN (INCREMENT J (REGION.HEIGHT (BOUNDING.BOX BUTTON))) (INCREMENT J (CDR BUTTON.SPACING)))) (ITEM INITIALIZATION (PLACEMENT PLACEMENT) (ACTION.FORM (LIST (QUOTE SET.CELL) CELL (KWOTE INITIAL.VALUE))))) OTHER (FNS ((1 CONVERT.SET.OF.ICONIC.BUTTONS.OFFSETS))) CLASSES ( BUTTON COMPOSITE) VERSION 1) (DEFINEQ (CONVERT.SET.OF.ICONIC.BUTTONS.OFFSETS [LAMBDA (ITEM) (* PH "22-Aug-84 11:10") (CONVERT.NONGRIDDED.OFFSETS ITEM (QUOTE HORIZONTAL.SPACING) (QUOTE VERTICAL.SPACING) (QUOTE BUTTON.SPACING]) ) (READ.ITEMTYPE SET.OF.LABELLED.BACKLIT.BUTTONS 5) (\TYPE ITEM.TYPE NAME SET.OF.LABELLED.BACKLIT.BUTTONS COMMENT "A set of backlit buttons which all affect the same cell, thus interacting" KIND COMPOSITE PARAMETERS ((\TYPE PARAMETER NAME PLACEMENT TYPE (POSITION) DEFAULT (340 . 255) COMMENT "Offset for the whole bunch" GRID.TYPE (LOCATION)) (\TYPE PARAMETER NAME BUTTONS TYPE (LIST ( STRUCTURE ((TEXT (LIST (STRING))) (VALUE (CONSTANT))))) DEFAULT ((("LABEL 1") VALUE.1) (( "LABEL 2") VALUE.2)) COMMENT "The buttons themselves") (\TYPE PARAMETER NAME PICTURE TYPE ( BITMAP.NAME) DEFAULT SIMPLE.BUTTON.BITMAP COMMENT "The graphic for the button") (\TYPE PARAMETER NAME BUTTON.SPACING TYPE (OFFSET.VECTOR) DEFAULT (0 . 51) COMMENT "Between buttons") (\TYPE PARAMETER NAME TEXT.DISPLACEMENT TYPE (OFFSET.VECTOR) DEFAULT (-34 . 17) COMMENT "Offset for the text from the buttons") (\TYPE PARAMETER NAME HORIZONTAL.ALIGNMENT TYPE (ONEOF ( LEFT CENTER RIGHT)) DEFAULT LEFT COMMENT "Horizontal alignment of the text") (\TYPE PARAMETER NAME VERTICAL.ALIGNMENT TYPE (ONEOF (TOP CENTER BOTTOM)) DEFAULT TOP COMMENT "Vertical alignment of the text") (\TYPE PARAMETER NAME FONT TYPE (FONT) DEFAULT NIL COMMENT "The font in which to print the labels") (\TYPE PARAMETER NAME CELL TYPE (CELL) DEFAULT CELL.1 COMMENT "The affected cell") (\TYPE PARAMETER NAME INITIAL.VALUE TYPE (CONSTANT) DEFAULT VALUE.1 COMMENT "An initial value for the cell")) SUBITEM.SPECS ((FOREACH (BUTTON IN BUTTONS) (I FROM 0) DO (ITEM BACKLIT.BUTTON (PLACEMENT (PTRANSLATE PLACEMENT (NEW.POSITION (ITIMES I (CAR BUTTON.SPACING)) (ITIMES I (CDR BUTTON.SPACING))))) (PICTURE PICTURE) (TEXT (CAR BUTTON)) ( TEXT.OFFSET TEXT.DISPLACEMENT) (HORIZONTAL.ALIGNMENT HORIZONTAL.ALIGNMENT) (VERTICAL.ALIGNMENT VERTICAL.ALIGNMENT) (FONT FONT) (CELL CELL) (VALUE (CADR BUTTON)))) (ITEM INITIALIZATION ( PLACEMENT PLACEMENT) (ACTION.FORM (LIST (QUOTE SET.CELL) CELL (KWOTE INITIAL.VALUE))))) OTHER ( FNS ((1 CONVERT.SET.OF.LABELLED.BACKLIT.BUTTONS.OFFSETS))) CLASSES (BUTTON COMPOSITE) VERSION 1) (DEFINEQ (CONVERT.SET.OF.LABELLED.BACKLIT.BUTTONS.OFFSETS (LAMBDA (ITEM) (* edited: "16-Aug-84 13:16") (CONVERT.GRIDDED.OFFSETSQ ITEM HORIZONTAL.SPACING VERTICAL.SPACING BUTTON.SPACING) (CONVERT.GRIDDED.OFFSETSQ ITEM TEXT.DISPLACEMENT TEXT.DISPLACEMENT.↑ TEXT.DISPLACEMENT))) ) (READ.ITEMTYPE SET.OF.NUMBER.BUTTONS 5) (\TYPE ITEM.TYPE NAME SET.OF.NUMBER.BUTTONS COMMENT "A set of buttons which put numbers in a cell" KIND COMPOSITE PARAMETERS ((\TYPE PARAMETER NAME PLACEMENT TYPE (POSITION) DEFAULT (340 . 255) COMMENT "Offset for the whole bunch" GRID.TYPE (LOCATION)) (\TYPE PARAMETER NAME LOWEST.NUMBER TYPE (INTEGER) DEFAULT 1 COMMENT "The lowest number for the buttons") (\TYPE PARAMETER NAME HIGHEST.NUMBER TYPE (INTEGER) DEFAULT 10 COMMENT "The lowest number for the buttons") (\TYPE PARAMETER NAME PICTURE TYPE (BITMAP.NAME) DEFAULT SIMPLE.BUTTON.BITMAP COMMENT "The graphic for the button") (\TYPE PARAMETER NAME BUTTON.SPACING TYPE (OFFSET.VECTOR) DEFAULT (0 . 34) COMMENT "Between buttons") (\TYPE PARAMETER NAME TEXT.DISPLACEMENT TYPE (OFFSET.VECTOR) DEFAULT (17 . 17) COMMENT "Offset for the text") (\TYPE PARAMETER NAME HORIZONTAL.ALIGNMENT TYPE ( ONEOF (LEFT CENTER RIGHT)) DEFAULT CENTER COMMENT "Horizontal alignment of the text") (\TYPE PARAMETER NAME VERTICAL.ALIGNMENT TYPE (ONEOF (TOP CENTER BOTTOM)) DEFAULT CENTER COMMENT "Vertical alignment of the text") (\TYPE PARAMETER NAME FONT TYPE (FONT) DEFAULT NIL COMMENT "The font in which to print the labels") (\TYPE PARAMETER NAME CELL TYPE (CELL) DEFAULT CELL.1 COMMENT "The affected cell") (\TYPE PARAMETER NAME INITIAL.VALUE TYPE (CONSTANT) DEFAULT 1 COMMENT "An initial value for the cell")) SUBITEM.SPECS ((FOREACH (I FROM LOWEST.NUMBER TO HIGHEST.NUMBER) DO (ITEM NUMBER.BUTTON (PLACEMENT (PTRANSLATE PLACEMENT (NEW.POSITION (ITIMES (IDIFFERENCE I LOWEST.NUMBER) (CAR BUTTON.SPACING)) (ITIMES (IDIFFERENCE I LOWEST.NUMBER) (CDR BUTTON.SPACING)))) ) (PICTURE PICTURE) (LABEL I) (FONT FONT) (CELL CELL) (DIGIT I))) (ITEM INITIALIZATION ( PLACEMENT PLACEMENT) (ACTION.FORM (LIST (QUOTE SET.CELL) CELL (KWOTE INITIAL.VALUE))))) OTHER ( FNS ((1 CONVERT.SET.OF.NUMBER.BUTTONS.OFFSETS))) CLASSES (COMPOSITE) VERSION 1) (DEFINEQ (CONVERT.SET.OF.NUMBER.BUTTONS.OFFSETS (LAMBDA (ITEM) (* edited: "16-Aug-84 13:16") (CONVERT.GRIDDED.OFFSETSQ ITEM HORIZONTAL.SPACING VERTICAL.SPACING BUTTON.SPACING) (CONVERT.GRIDDED.OFFSETSQ ITEM TEXT.DISPLACEMENT TEXT.DISPLACEMENT.↑ TEXT.DISPLACEMENT))) ) (READ.ITEMTYPE TOUCH.AREA 5) (\TYPE ITEM.TYPE NAME TOUCH.AREA COMMENT "A bordered sensitive region" KIND COMPOSITE PARAMETERS (( \TYPE PARAMETER NAME PLACEMENT TYPE (REGION) DEFAULT (100 100 30 30) COMMENT "The region of the touch area") (\TYPE PARAMETER NAME WIDTH TYPE (INTEGER) DEFAULT 4 COMMENT "The width of the shaded border") (\TYPE PARAMETER NAME SHADE TYPE (SHADE) DEFAULT 32768 COMMENT "The grey shade of the sensitive region") (\TYPE PARAMETER NAME OPERATION TYPE (ONEOF (REPLACE PAINT INVERT ERASE)) DEFAULT PAINT COMMENT "The operation for BITBLT") (\TYPE PARAMETER NAME ACTION TYPE (FORM) DEFAULT (ACTION.DONOTHING) COMMENT "The action to be taken when this region is touched" )) SUBITEM.SPECS ((ITEM INVERTING.SENSITIVE.REGION (PLACEMENT PLACEMENT) (ACTION.FORM ACTION)) ( ITEM BORDER (PLACEMENT PLACEMENT) (THICKNESS WIDTH) (OPERATION OPERATION) (COLOR SHADE))) CLASSES (COMPOSITE)) (READ.ITEMTYPE UP.DOWN.BUTTONS 5) (\TYPE ITEM.TYPE NAME UP.DOWN.BUTTONS COMMENT "Pair of Up/Down Buttons for Thermometer controls" KIND COMPOSITE PARAMETERS ((\TYPE PARAMETER NAME PLACEMENT TYPE (POSITION) DEFAULT (170 . 170) COMMENT "The location of this item" GRID.TYPE (LOCATION)) (\TYPE PARAMETER NAME CELL TYPE (CELL) DEFAULT CELL.1 COMMENT "The cell affected") (\TYPE PARAMETER NAME BUTTON.SPACING TYPE (OFFSET.VECTOR) DEFAULT (0 . 51) COMMENT "Between buttons") (\TYPE PARAMETER NAME UP.PICTURE TYPE (BITMAP.NAME) DEFAULT UP.BUTTON COMMENT "Bitmap picture for Up button") (\TYPE PARAMETER NAME DOWN.PICTURE TYPE ( BITMAP.NAME) DEFAULT DOWN.BUTTON COMMENT "Bitmap picture for Down button") (\TYPE PARAMETER NAME MAXIMUM TYPE (INTEGER) DEFAULT 10 COMMENT "Maximum value of cell") (\TYPE PARAMETER NAME MINIMUM TYPE (INTEGER) DEFAULT 1 COMMENT "Minimum value of cell") (\TYPE PARAMETER NAME INCREMENT TYPE ( INTEGER) DEFAULT 1 COMMENT "The step size for each activation") (\TYPE PARAMETER NAME AT.LIMIT TYPE (ONEOF (STICK.AT.LIMIT WRAP.AROUND)) DEFAULT STICK.AT.LIMIT COMMENT "What to do when you reach the limit") (\TYPE PARAMETER NAME RATE TYPE (INTEGER) DEFAULT 300 COMMENT "Delay in milliseconds")) SUBITEM.SPECS ((ITEM GENERAL.BUTTON (PLACEMENT (PTRANSLATE PLACEMENT BUTTON.SPACING)) (TEXT (LIST "")) (PICTURE UP.PICTURE) (ACTION (LIST (QUOTE INCREASE.CELL) ( KWOTE CELL) INCREMENT MAXIMUM (COND ((EQ AT.LIMIT (QUOTE STICK.AT.LIMIT)) NIL) (T MINIMUM)) RATE)) ) (ITEM GENERAL.BUTTON (PLACEMENT PLACEMENT) (TEXT (LIST "")) (PICTURE DOWN.PICTURE) (ACTION ( LIST (QUOTE DECREASE.CELL) (KWOTE CELL) INCREMENT MINIMUM (COND ((EQ AT.LIMIT (QUOTE STICK.AT.LIMIT)) NIL) (T MAXIMUM)) RATE)))) OTHER (FNS ((1 CONVERT.UP.DOWN.BUTTONS.OFFSETS)) BITMAPS ((UP.BUTTON {(READBITMAP)(40 40 "OOOOOOOOM@@@" "OOOOOOOOMH@@" "OOOOOOOOML@@" "N@@@@@@AMN@@" "N@@@@@@AMO@@" "N@@@@@@AMO@@" "N@@@@@@AMO@@" "N@@@@@@AMO@@" "N@@@@@@AMO@@" "N@@@L@@AMO@@" "N@@AN@@AMO@@" "N@@CO@@AMO@@" "N@@GOH@AMO@@" "N@@OCL@AMO@@" "N@ANAN@AMO@@" "N@CL@O@AMO@@" "N@GH@GHAMO@@" "N@O@@CLAMO@@" "NAN@@ANAMO@@" "NCL@@@OAMO@@" "NGH@@@GIMO@@" "NG@@@@CIMO@@" "NF@@@@AIMO@@" "ND@@@@@IMO@@" "N@@@@@@AMO@@" "N@@@@@@AMO@@" "N@@@@@@AMO@@" "N@@@@@@AMO@@" "N@@@@@@AMO@@" "N@@@@@@AMO@@" "N@@@@@@AMO@@" "OOOOOOOOMO@@" "OOOOOOOOMO@@" "OOOOOOOOMO@@" "@@@@@@@@@O@@" "OOOOOOOOLG@@" "GOOOOOOONC@@" "COOOOOOOOA@@" "AOOOOOOOOH@@" "@OOOOOOOOL@@")}) (DOWN.BUTTON {(READBITMAP)(40 40 "OOOOOOOOM@@@" "OOOOOOOOMH@@" "OOOOOOOOML@@" "N@@@@@@AMN@@" "N@@@@@@AMO@@" "N@@@@@@AMO@@" "N@@@@@@AMO@@" "N@@@@@@AMO@@" "N@@@@@@AMO@@" "N@@@@@@AMO@@" "ND@@@@@IMO@@" "NF@@@@AIMO@@" "NG@@@@CIMO@@" "NGH@@@GIMO@@" "NCL@@@OAMO@@" "NAN@@ANAMO@@" "N@O@@CLAMO@@" "N@GH@GHAMO@@" "N@CL@O@AMO@@" "N@ANAN@AMO@@" "N@@OCL@AMO@@" "N@@GOH@AMO@@" "N@@CO@@AMO@@" "N@@AN@@AMO@@" "N@@@L@@AMO@@" "N@@@@@@AMO@@" "N@@@@@@AMO@@" "N@@@@@@AMO@@" "N@@@@@@AMO@@" "N@@@@@@AMO@@" "N@@@@@@AMO@@" "OOOOOOOOMO@@" "OOOOOOOOMO@@" "OOOOOOOOMO@@" "@@@@@@@@@O@@" "OOOOOOOOLG@@" "GOOOOOOONC@@" "COOOOOOOOA@@" "AOOOOOOOOH@@" "@OOOOOOOOL@@")}))) CLASSES (COMPOSITE BUTTON) VERSION 1) (DEFINEQ (CONVERT.UP.DOWN.BUTTONS.OFFSETS (LAMBDA (ITEM) (* edited: "16-Aug-84 12:59") (CONVERT.GRIDDED.OFFSETSQ ITEM HORIZONTAL.SPACING VERTICAL.SPACING BUTTON.SPACING))) ) (READ.ITEMTYPE VALUE.BAR 5) (\TYPE ITEM.TYPE NAME VALUE.BAR COMMENT "A bordered region through which to view a cell" KIND COMPOSITE PARAMETERS ((\TYPE PARAMETER NAME PLACEMENT TYPE (REGION) DEFAULT (170 170 136 34) COMMENT "The boundaries of the viewing area" GRID.TYPE (GRIDREGION)) (\TYPE PARAMETER NAME CELL TYPE (CELL) DEFAULT CELL.1 COMMENT "The underlying cell represented by the value bar") (\TYPE PARAMETER NAME XALIGNMENT TYPE (ONEOF (LEFT CENTER RIGHT)) DEFAULT CENTER COMMENT "Horizontal alignment") (\TYPE PARAMETER NAME YALIGNMENT TYPE (ONEOF (TOP CENTER BOTTOM)) DEFAULT CENTER COMMENT "Vertical alignment") (\TYPE PARAMETER NAME FONT TYPE (FONT) DEFAULT (GACHA 10) COMMENT "The font to print the value in") (\TYPE PARAMETER NAME BORDER.THICKNESS TYPE (INTEGER) DEFAULT 2 COMMENT "The thickness in screen points of the border") (\TYPE PARAMETER NAME BORDER.COLOR TYPE (SHADE) DEFAULT 65535 COMMENT "The color of the border") (\TYPE PARAMETER NAME BORDER.OPERATION TYPE (ONEOF (REPLACE PAINT INVERT ERASE)) DEFAULT REPLACE COMMENT "How the border is combined with the screen") (\TYPE PARAMETER NAME PRINT.MARGIN TYPE (INTEGER) DEFAULT 2 COMMENT "The margin of the printing region") (\TYPE PARAMETER NAME PRINT.BACKGROUND TYPE (SHADE) DEFAULT 42405 COMMENT "The background of the printing region") (\TYPE PARAMETER NAME PRINT.SOURCE TYPE (ONEOF (INPUT INVERT)) DEFAULT INPUT COMMENT "How the texture is combined with the print") (\TYPE PARAMETER NAME PRINT.OPERATION TYPE (ONEOF ( REPLACE PAINT INVERT ERASE)) DEFAULT REPLACE COMMENT "How the print is combined with the background") ) SUBITEM.SPECS ((IF (NEQ BORDER.THICKNESS 0) THEN (ITEM BORDER (PLACEMENT PLACEMENT) (THICKNESS BORDER.THICKNESS) (OPERATION BORDER.OPERATION) (COLOR BORDER.COLOR))) (ITEM PRINT.REGION ( PLACEMENT (REGION.WITHIN.BORDER PLACEMENT BORDER.THICKNESS)) (CELL CELL) (XALIGNMENT XALIGNMENT) ( YALIGNMENT YALIGNMENT) (FONT FONT) (MARGIN PRINT.MARGIN) (BACKGROUND PRINT.BACKGROUND) (SOURCE PRINT.SOURCE) (OPERATION PRINT.OPERATION))) CLASSES (COMPOSITE)) (READ.ITEMTYPE VERTICAL.BUTTONS 5) (\TYPE ITEM.TYPE NAME VERTICAL.BUTTONS COMMENT "A set of backlit buttons which all affect the same cell, thus interacting" KIND COMPOSITE PARAMETERS ((\TYPE PARAMETER NAME PLACEMENT TYPE (POSITION) DEFAULT (340 . 255) COMMENT "Offset for the whole bunch" GRID.TYPE (LOCATION)) (\TYPE PARAMETER NAME BUTTONS TYPE (LIST ( STRUCTURE ((TEXT (LIST (STRING))) (VALUE (CONSTANT))))) DEFAULT ((("LABEL 1") VALUE.1) (( "LABEL 2") VALUE2)) COMMENT "A list of label/value pairs describing the buttons") (\TYPE PARAMETER NAME PICTURE TYPE (BITMAP.NAME) DEFAULT SIMPLE.BUTTON.BITMAP COMMENT "The graphic for the buttons") (\TYPE PARAMETER NAME VERTICAL.SPACING TYPE (INTEGER) DEFAULT 51 COMMENT "Between buttons") (\TYPE PARAMETER NAME TEXT.DISPLACEMENT TYPE (OFFSET.VECTOR) DEFAULT (-34 . 17) COMMENT "Offset for the text") (\TYPE PARAMETER NAME HORIZONTAL.ALIGNMENT TYPE (ONEOF (LEFT CENTER RIGHT)) DEFAULT LEFT COMMENT "Horizontal alignment of the text") (\TYPE PARAMETER NAME VERTICAL.ALIGNMENT TYPE (ONEOF (TOP CENTER BOTTOM)) DEFAULT TOP COMMENT "Vertical alignment of the text") (\TYPE PARAMETER NAME FONT TYPE (FONT) DEFAULT NIL COMMENT "The font in which to print the labels") (\TYPE PARAMETER NAME CELL TYPE (CELL) DEFAULT CELL.1 COMMENT "The affected cell") (\TYPE PARAMETER NAME INITIAL.VALUE TYPE (CONSTANT) DEFAULT VALUE.1 COMMENT "An initial value for the cell")) SUBITEM.SPECS ((ITEM SET.OF.LABELLED.BACKLIT.BUTTONS (PLACEMENT PLACEMENT) (BUTTONS BUTTONS) ( PICTURE PICTURE) (BUTTON.SPACING (NEW.POSITION 0 VERTICAL.SPACING)) (TEXT.DISPLACEMENT TEXT.DISPLACEMENT) (HORIZONTAL.ALIGNMENT HORIZONTAL.ALIGNMENT) (VERTICAL.ALIGNMENT VERTICAL.ALIGNMENT) (FONT FONT) (CELL CELL) (INITIAL.VALUE INITIAL.VALUE))) OTHER (FNS ((1 CONVERT.VERTICAL.BUTTONS.OFFSETS))) CLASSES (BUTTON COMPOSITE) VERSION 1) (DEFINEQ (CONVERT.VERTICAL.BUTTONS.OFFSETS (LAMBDA (ITEM) (* edited: "16-Aug-84 13:27") (PROG NIL (CONVERT.GRIDDED.OFFSET ITEM (QUOTE VERTICAL.SPACING)) (CONVERT.GRIDDED.OFFSETSQ ITEM TEXT.DISPLACEMENT TEXT.DISPLACEMENT.↑ TEXT.DISPLACEMENT)))) ) (READ.ITEMTYPE VERTICAL.BUTTONS.SPECIAL.FEATURE 5) (\TYPE ITEM.TYPE NAME VERTICAL.BUTTONS.SPECIAL.FEATURE COMMENT "A set of backlit buttons which all affect the same cell, thus interacting" KIND COMPOSITE PARAMETERS ((\TYPE PARAMETER NAME PLACEMENT TYPE (POSITION) DEFAULT (170 . 170) COMMENT "Offset for the whole bunch" GRID.TYPE (LOCATION)) (\TYPE PARAMETER NAME BUTTONS TYPE (LIST ( STRUCTURE ((TEXT (LIST (STRING))) (VALUE (CONSTANT))))) DEFAULT ((("LABEL 1") VALUE.1) (( "LABEL 2") VALUE.2)) COMMENT "The buttons themselves") (\TYPE PARAMETER NAME NORMAL.FEATURE TYPE ( CONSTANT) DEFAULT (SEE INITIAL.VALUE) COMMENT "The non-special case") (\TYPE PARAMETER NAME PICTURE TYPE (BITMAP.NAME) DEFAULT SIMPLE.BUTTON.BITMAP COMMENT "The picture to use for the buttons") ( \TYPE PARAMETER NAME VERTICAL.SPACING TYPE (INTEGER) DEFAULT 51 COMMENT "Between buttons") (\TYPE PARAMETER NAME TEXT.DISPLACEMENT TYPE (OFFSET.VECTOR) DEFAULT (-34 . 17) COMMENT "Offset for text") (\TYPE PARAMETER NAME HORIZONTAL.ALIGNMENT TYPE (ONEOF (LEFT CENTER RIGHT)) DEFAULT RIGHT COMMENT "Horizontal alignment of label text") (\TYPE PARAMETER NAME VERTICAL.ALIGNMENT TYPE (ONEOF (TOP CENTER BOTTOM)) DEFAULT CENTER COMMENT "Horizontal alignment of label text") (\TYPE PARAMETER NAME FONT TYPE (FONT) DEFAULT NIL COMMENT "The font for the labels") (\TYPE PARAMETER NAME CELL TYPE ( CELL) DEFAULT CELL.1 COMMENT "The affected cell") (\TYPE PARAMETER NAME INITIAL.VALUE TYPE ( CONSTANT) DEFAULT VALUE.1 COMMENT "An initial value for the cell")) SUBITEM.SPECS ((FOREACH (BUTTON IN BUTTONS) (I FROM 0 BY 0) DO (IF (NEQ (CADR BUTTON) NORMAL.FEATURE) THEN (ITEM BACKLIT.BUTTON.SPECIAL.FEATURE (PLACEMENT (PTRANSLATE PLACEMENT 0 (ITIMES I VERTICAL.SPACING))) ( PICTURE PICTURE) (TEXT (CAR BUTTON)) (TEXT.OFFSET TEXT.DISPLACEMENT) (HORIZONTAL.ALIGNMENT HORIZONTAL.ALIGNMENT) (VERTICAL.ALIGNMENT VERTICAL.ALIGNMENT) (FONT FONT) (CELL CELL) (VALUE ( CADR BUTTON)) (INITIAL.VALUE NORMAL.FEATURE)) (INCREMENT I))) (ITEM INITIALIZATION (PLACEMENT PLACEMENT) (ACTION.FORM (LIST (QUOTE SET.CELL) CELL (KWOTE INITIAL.VALUE))))) OTHER (FNS ((1 CONVERT.VERTICAL.BUTTONS.SPECIAL.FEATURE.OFFSETS))) CLASSES (BUTTON COMPOSITE) VERSION 1) (DEFINEQ (CONVERT.VERTICAL.BUTTONS.SPECIAL.FEATURE.OFFSETS (LAMBDA (ITEM) (* edited: "16-Aug-84 13:27") (PROG NIL (CONVERT.GRIDDED.OFFSET ITEM (QUOTE VERTICAL.SPACING)) (CONVERT.GRIDDED.OFFSETSQ ITEM TEXT.DISPLACEMENT TEXT.DISPLACEMENT.↑ TEXT.DISPLACEMENT)))) ) (COMPILE.INTERNAL.FNS.IF.NECESSARY) (PUTPROPS COMPOSITE-ITEMTYPES FILETYPE DON'TCOMPILE) (DECLARE: DONTEVAL@LOAD DOEVAL@COMPILE DONTCOPY COMPILERVARS (ADDTOVAR NLAMA ) (ADDTOVAR NLAML ACTON.CASCADE.BUTTON ACTON.BACKLIT.BUTTON.SPECIAL.FEATURE) (ADDTOVAR LAMA ) ) (DECLARE: DONTCOPY (FILEMAP (NIL (3491 3664 (CONVERT.BACKLIT.BUTTON.OFFSETS 3501 . 3662)) (5800 6199 ( ACTON.BACKLIT.BUTTON.SPECIAL.FEATURE 5810 . 6018) (CONVERT.BACKLIT.BUTTON.SPECIAL.FEATURE.OFFSETS 6020 . 6197)) (9760 9925 (CONVERT.BUTTON.OFFSETS 9770 . 9923)) (16223 16616 (CONVERT.CASCADE.OFFSETS 16233 . 16614)) (18429 19429 (ACTON.CASCADE.BUTTON 18439 . 18735) (INCREMENT.CASCADE.BUTTON 18737 . 19427)) (21156 21332 (CONVERT.CASCADE.INDICATOR.OFFSETS 21166 . 21330)) (22827 22999 ( CONVERT.CASCADE.LIGHT.OFFSETS 22837 . 22997)) (24927 25114 (CONVERT.CASCADE.UP.DOWN.BUTTONS.OFFSETS 24937 . 25112)) (28528 28706 (CONVERT.CHANGE.FRAME.BUTTON.OFFSETS 28538 . 28704)) (29600 29849 ( ACTON.COMPUTER 29610 . 29847)) (33828 34002 (CONVERT.EXTERNAL.BUTTON.OFFSETS 33838 . 34000)) (37179 37352 (CONVERT.GENERAL.BUTTON.OFFSETS 37189 . 37350)) (39306 39562 (CONVERT.HORIZONTAL.BUTTONS.OFFSETS 39316 . 39560)) (44204 44520 (CONVERT.INVERTING.CASCADE.OFFSETS 44214 . 44518)) (46161 46343 ( CONVERT.INVERTING.CASCADE.LIGHT.OFFSETS 46171 . 46341)) (49830 50343 ( CONVERT.INVERTING.CASCADE.TWO.BUTTONS.OFFSETS 49840 . 50341)) (53156 53587 ( CONVERT.INVERTING.ICONIC.CASCADE.TWO.BUTTONS.OFFSETS 53166 . 53585)) (54904 56104 ( ANALYZE.LINE.OF.TEXT 54914 . 56102)) (67863 68036 (CONVERT.OFFPAGE.BUTTON.OFFSETS 67873 . 68034)) ( 75845 76110 (CONVERT.SET.OF.ICONIC.BUTTONS.OFFSETS 75855 . 76108)) (78244 78528 ( CONVERT.SET.OF.LABELLED.BACKLIT.BUTTONS.OFFSETS 78254 . 78526)) (80521 80795 ( CONVERT.SET.OF.NUMBER.BUTTONS.OFFSETS 80531 . 80793)) (84873 85052 (CONVERT.UP.DOWN.BUTTONS.OFFSETS 84883 . 85050)) (89082 89334 (CONVERT.VERTICAL.BUTTONS.OFFSETS 89092 . 89332)) (91624 91892 ( CONVERT.VERTICAL.BUTTONS.SPECIAL.FEATURE.OFFSETS 91634 . 91890))))) STOP