;;; -*- Mode:LISP; Package:TV; Base:10; Readtable:ZL -*-


(DEFUN WHO-LINE-SETUP ()
  (WHEN (NULL WHO-LINE-SCREEN)
    (SETQ WHO-LINE-SCREEN
	  (DEFINE-SCREEN 'WHO-LINE-SCREEN "Who Line Screen"
	    :AREA WHO-LINE-AREA
	    :DEFAULT-FONT FONTS:CPTFONT	;not *DEFAULT-FONT*
	    :BUFFER MAIN-SCREEN-BUFFER-ADDRESS
	    :CONTROL-ADDRESS #o377760
	    :PROPERTY-LIST '(:VIDEO :BLACK-AND-WHITE
				    :CONTROLLER :SIMPLE
				    :WHO-LINE T)
	    :WIDTH MAIN-SCREEN-WIDTH
	    :LOCATIONS-PER-LINE MAIN-SCREEN-LOCATIONS-PER-LINE
	    :CHARACTER-HEIGHT 2
	    :VSP 0
	    :Y NIL			;Force this to be calculated
	    :BOTTOM MAIN-SCREEN-HEIGHT))
    ;; 18 characters of the date and time
    (SETQ NWATCH-WHO-LINE-SHEET
	  (WHO-LINE-FIELD :FLAVOR 'WHO-LINE-SHEET
			  :WHO-LINE-UPDATE-FUNCTION 'NWATCH-WHO-FUNCTION
			  :HEIGHT (SHEET-LINE-HEIGHT WHO-LINE-SCREEN)
			  :LEFT 0 :RIGHT 144. :BOTTOM (SHEET-HEIGHT WHO-LINE-SCREEN)))
    ;; 24 characters of user id or process
    (WHO-LINE-FIELD :FLAVOR 'WHO-LINE-SHEET
		    :WHO-LINE-UPDATE-FUNCTION 'WHO-LINE-USER-OR-PROCESS
		    :HEIGHT (SHEET-LINE-HEIGHT WHO-LINE-SCREEN)
		    :LEFT 152. :RIGHT 344. :BOTTOM (SHEET-HEIGHT WHO-LINE-SCREEN))
    ;; 2 characters of readtable
    (WHO-LINE-FIELD :FLAVOR 'WHO-LINE-SHEET
		    :WHO-LINE-UPDATE-FUNCTION 'WHO-LINE-READTABLE
		    :HEIGHT (SHEET-LINE-HEIGHT WHO-LINE-SCREEN)
		    :LEFT 352. :RIGHT 368. :BOTTOM (SHEET-HEIGHT WHO-LINE-SCREEN))
    ;; 10 characters of package
    (WHO-LINE-FIELD :FLAVOR 'WHO-LINE-SHEET
		    :WHO-LINE-UPDATE-FUNCTION 'WHO-LINE-PACKAGE
		    :HEIGHT (SHEET-LINE-HEIGHT WHO-LINE-SCREEN)
		    :LEFT 372. :RIGHT 452. :BOTTOM (SHEET-HEIGHT WHO-LINE-SCREEN))
    ;; 19 characters of process state
    (SETQ WHO-LINE-RUN-STATE-SHEET
	  (WHO-LINE-FIELD :FLAVOR 'WHO-LINE-SHEET
			  :WHO-LINE-UPDATE-FUNCTION 'WHO-LINE-RUN-STATE
			  :HEIGHT (SHEET-LINE-HEIGHT WHO-LINE-SCREEN)
			  :BOTTOM (SHEET-HEIGHT WHO-LINE-SCREEN)
			  :LEFT 460.
			  :RIGHT (SELECT-PROCESSOR ((:LAMBDA :EXPLORER) 612.) (:CADR 480.))))
    ;; The remaining 36 characters go to the file/idle/boot state
    (SETQ WHO-LINE-FILE-STATE-SHEET
	  (WHO-LINE-FIELD :FLAVOR 'WHO-LINE-FILE-SHEET
			  :LEFT (SELECT-PROCESSOR (:CADR 480.) ((:LAMBDA :EXPLORER) 620.))
			  :RIGHT (SELECT-PROCESSOR (:CADR 768.) ((:LAMBDA :EXPLORER) 1024.))
			  :HEIGHT (SHEET-LINE-HEIGHT WHO-LINE-SCREEN)
			  :BOTTOM (SHEET-HEIGHT WHO-LINE-SCREEN)))
    ;; Above those windows is a full line of mouse button documentation
    (SETQ WHO-LINE-DOCUMENTATION-WINDOW
	  (WHO-LINE-FIELD :FLAVOR 'WHO-LINE-SHEET
			  :WHO-LINE-UPDATE-FUNCTION 'WHO-LINE-DOCUMENTATION-FUNCTION
			  :HEIGHT (SHEET-LINE-HEIGHT WHO-LINE-SCREEN)
			  :TOP 0 :REVERSE-VIDEO-P T))))