(FILECREATED "28-JUL-82 16:30:19" {PHYLUM}<FIKES>LISP>8200DISPLAYINTERFACE.;17 9299   

      changes to:  (VARS 8200DISPLAYINTERFACEFNS)
		   (FNS WhenPadMenuSelected)

      previous date: "17-JUN-82 17:23:54" {PHYLUM}<FIKES>LISP>8200DISPLAYINTERFACE.;16)


(PRETTYCOMPRINT 8200DISPLAYINTERFACECOMS)

(RPAQQ 8200DISPLAYINTERFACECOMS [(FNS * 8200DISPLAYINTERFACEFNS)
				 (P (LOAD? (QUOTE {PHYLUM}<FIKES>LISP>8200INTERFACE.DCOM))
				    (CreateFonts))
				 (DECLARE: DONTEVAL@LOAD DOEVAL@COMPILE DONTCOPY COMPILERVARS
					   (ADDVARS (NLAMA)
						    (NLAML)
						    (LAMA])

(RPAQQ 8200DISPLAYINTERFACEFNS (Display8200 FeatureMenuItems Print8200Status WhenPadMenuSelected))
(DEFINEQ

(Display8200
  [LAMBDA NIL                                                (* ref: "24-MAR-82 17:09")

          (* A display and menu based 8200 interface. Displays a window and two menus. The current status of the 8200 is 
	  maintained in the window. One menu is a "push a button" menu. The other is a "select feature" menu.)


    (DECLARE (USEDFREE TimesRoman16 Helvetica16Bold WindowTitleDisplayStream))
    (PROG (oldTitleFont statusRegion oldQuantity temp (w (CREATEW NIL "8200 Control Panel"))
			[start (create MENU
				       ITEMS ←('(Start))
				       MENUFONT ← Helvetica16Bold
				       WHENSELECTEDFN ←(FUNCTION (LAMBDA NIL
					   (Push8200Button 'StartPrint]
			[stop (create MENU
				      ITEMS ←('(Stop))
				      MENUFONT ← Helvetica16Bold
				      WHENSELECTEDFN ←(FUNCTION (LAMBDA NIL
					  (Push8200Button 'StopPrint]
			(padMenu (create MENU
					 ITEMS ←('(1 2 3 4 5 6 7 8 9 blank 0 clear))
					 MENUFONT ← Helvetica16Bold
					 CENTERFLG ← T
					 MENUCOLUMNS ← 3
					 ITEMHEIGHT ← 25
					 ITEMWIDTH ← 40
					 TITLE ←"Number Pad"
					 WHENSELECTEDFN ←('WhenPadMenuSelected)))
			(outputMenu (create MENU
					    ITEMS ←(FeatureMenuItems '(Uncollated CollatedStapled 
										CollatedUnstapled))
					    MENUFONT ← Helvetica16Bold
					    TITLE ←(GetMessage 'OutputButton)))
			(trayMenu (create MENU
					  ITEMS ←(FeatureMenuItems '(Top Bottom))
					  MENUFONT ← Helvetica16Bold
					  TITLE ←(GetMessage 'PaperTrayButton)))
			(copyMenu (create MENU
					  ITEMS ←(FeatureMenuItems '(Lighter Darker Normal))
					  MENUFONT ← Helvetica16Bold
					  TITLE ←(GetMessage 'CopyButton)))
			(modeMenu (create MENU
					  ITEMS ←(FeatureMenuItems '(TwoSidedOriginalsAndCopies
								     TwoSidedCopies OneSidedCopies))
					  MENUFONT ← Helvetica16Bold
					  TITLE ←(GetMessage 'CopyModeButton)))
			(reductionMenu (create MENU
					       ITEMS ←(FeatureMenuItems '(65 74 98 FullSize))
					       MENUFONT ← Helvetica16Bold
					       TITLE ←(GetMessage 'Reduction)))
			(oldArray (ARRAY 30 'BYTE))
			(newArray (ARRAY 30 'BYTE))
			(quantity 1))
          (oldTitleFont←(DSPFONT Helvetica16Bold WindowTitleDisplayStream))
          (DSPFONT TimesRoman16 w)
          (Push8200Button 'Clear)
          (Push8200Button 1)
          (ADDMENU padMenu w (create POSITION
				     XCOORD ← 0
				     YCOORD ← 0))
          (ADDMENU outputMenu w (create POSITION
					XCOORD ←(padMenu:IMAGEWIDTH+5)
					YCOORD ←(padMenu:IMAGEHEIGHT-outputMenu:IMAGEHEIGHT)))
          (ADDMENU trayMenu w (create POSITION
				      XCOORD ←(padMenu:IMAGEWIDTH+outputMenu:IMAGEWIDTH+10)
				      YCOORD ←(padMenu:IMAGEHEIGHT-trayMenu:IMAGEHEIGHT)))
          (ADDMENU copyMenu w (create POSITION
				      XCOORD ←(
				  padMenu:IMAGEWIDTH+outputMenu:IMAGEWIDTH+trayMenu:IMAGEWIDTH+15)
				      YCOORD ←(padMenu:IMAGEHEIGHT-copyMenu:IMAGEHEIGHT)))
          (ADDMENU modeMenu w (create POSITION
				      XCOORD ←(
	      padMenu:IMAGEWIDTH+outputMenu:IMAGEWIDTH+trayMenu:IMAGEWIDTH+copyMenu:IMAGEWIDTH+20)
				      YCOORD ←(padMenu:IMAGEHEIGHT-modeMenu:IMAGEHEIGHT)))
          (ADDMENU reductionMenu w (create POSITION
					   XCOORD ←(

padMenu:IMAGEWIDTH+outputMenu:IMAGEWIDTH+trayMenu:IMAGEWIDTH+copyMenu:IMAGEWIDTH+modeMenu:IMAGEWIDTH+25
					     )
					   YCOORD ←(padMenu:IMAGEHEIGHT-reductionMenu:IMAGEHEIGHT)))
          (ADDMENU start w (create POSITION
				   XCOORD ←(padMenu:IMAGEWIDTH/2-start:IMAGEWIDTH/2)
				   YCOORD ←(padMenu:IMAGEHEIGHT+20)))
          (ADDMENU stop w (create POSITION
				  XCOORD ←(padMenu:IMAGEWIDTH+outputMenu:IMAGEWIDTH/2+(-(
					stop:IMAGEWIDTH/2)))
				  YCOORD ←(padMenu:IMAGEHEIGHT+20)))
          (DSPFONT oldTitleFont WindowTitleDisplayStream)
          (statusRegion←(create REGION
				LEFT ← 0
				BOTTOM ←(padMenu:IMAGEHEIGHT+start:IMAGEHEIGHT+21)
				WIDTH ←(WINDOWPROP w 'WIDTH)
				HEIGHT ←(WINDOWPROP w 'HEIGHT)))
          (while T do (Read8200 newArray)
		      (if ~((Get8200 newArray 'State)='ComponentControl or ~(Get8200 newArray 'State)
			     or quantity=oldQuantity and (for i to 30 always (ELT newArray i)=(ELT
									       oldArray i)))
			  then temp←oldArray
			       oldArray←newArray
			       newArray←temp
			       (DSPFILL statusRegion NIL NIL w)
			       (MOVETOUPPERLEFT w)
			       oldQuantity←quantity
			       (Print8200Status w oldArray oldQuantity))
		      (DISMISS 1000])

(FeatureMenuItems
  [LAMBDA (items)                                            (* ref: "22-MAR-82 16:01")
                                                             (* Form the items list for a 8200 features menu.)
    (for x in items collect <(GetMessage x)
			      <'Select8200Feature <'QUOTE x>>>])

(Print8200Status
  [LAMBDA (window array quantity)                            (* ref: "24-MAR-82 16:39")
                                                             (* Print in window a description of the status of the 
							     8200 as already read into array.)
    (DECLARE (USEDFREE Helvetica16Bold TimesRoman16Bold TimesRoman16))
    (PROG (messages (state (Get8200 array 'State)))
          (SELECTQ state
		   ((ComponentControl NIL)
		     (RETURN))
		   T)
          (DSPFONT TimesRoman16Bold window)
          (printout window (GetMessage state))
          (DSPFONT TimesRoman16 window)
          (messages←(for indicator
		       in '(APLight CBPTDLight CDCLight FPBLPTLight LCITTLight LPBFPTLight OFDLight 
				    OFULight PWLight STTTSLight UOTLight UTPTLight)
		       bind ivalue join (ivalue←(Get8200 array indicator))
					(if ivalue~='off and ivalue
					    then <(GetMessage indicator array)
						   >)))
          [if state~='LampTest
	      then (if messages
		       then (DSPFONT Helvetica16Bold window)
			    (printout window T T "Messages:")
			    (DSPFONT TimesRoman16 window)
			    (for m in messages do (printout window T -5 m)))
		   (if (Get8200 array 'SCSILight)='on
		       then (DSPFONT TimesRoman16Bold window)
			    (printout window T T "Status -- ")
			    (DSPFONT TimesRoman16 window)
			    (printout window (GetMessage (Get8200 array 'OpStatusCode]
          (printout window T T)
          (DSPFONT TimesRoman16Bold window)
          (printout window "Number of copies -- ")
          (DSPFONT TimesRoman16 window)
          (printout window quantity)
          (printout window T T)
          (DSPFONT Helvetica16Bold window)
          (printout window "Feature Settings:")
          (DSPFONT TimesRoman16Bold window)
          (printout window T -5 (GetMessage 'OutputButton)
		    " -- ")
          (DSPFONT TimesRoman16 window)
          (printout window (GetMessage (Get8200 array 'Output)))
          (DSPFONT TimesRoman16Bold window)
          (printout window T -5 (GetMessage 'PaperTrayButton)
		    " -- ")
          (DSPFONT TimesRoman16 window)
          (printout window (GetMessage (Get8200 array 'PaperTray)))
          (DSPFONT TimesRoman16Bold window)
          (printout window T -5 (GetMessage 'CopyButton)
		    " -- ")
          (DSPFONT TimesRoman16 window)
          (printout window (GetMessage (Get8200 array 'Copy)))
          (DSPFONT TimesRoman16Bold window)
          (printout window T -5 (GetMessage 'CopyModeButton)
		    " -- ")
          (DSPFONT TimesRoman16 window)
          (printout window (GetMessage (Get8200 array 'CopyMode)))
          (DSPFONT TimesRoman16Bold window)
          (printout window T -5 (GetMessage 'ReductionButton)
		    " -- ")
          (DSPFONT TimesRoman16 window)
          (printout window (GetMessage (Get8200 array 'Reduction])

(WhenPadMenuSelected
  [LAMBDA (item)                                             (* ref: "19-MAR-82 11:50")
                                                             (* WHENSELECTEDFN for the pad menu in Display8200.)
    (DECLARE (USEDFREE quantity))
    (SELECTQ item
	     (blank (Push8200Button 'Blank))
	     (clear (Push8200Button 'Clear)
		    quantity←0)
	     (if quantity lt 100
		 then (Push8200Button item)
		      quantity←quantity*10+item])
)
(LOAD? (QUOTE {PHYLUM}<FIKES>LISP>8200INTERFACE.DCOM))
(CreateFonts)
(DECLARE: DONTEVAL@LOAD DOEVAL@COMPILE DONTCOPY COMPILERVARS 

(ADDTOVAR NLAMA )

(ADDTOVAR NLAML )

(ADDTOVAR LAMA )
)
(DECLARE: DONTCOPY
  (FILEMAP (NIL (693 9076 (Display8200 703 . 5243) (FeatureMenuItems 5245 . 5573) (Print8200Status 5575
 . 8586) (WhenPadMenuSelected 8588 . 9074)))))
STOP