;;; -*- Mode: LISP; Base: 10.; Syntax: Zetalisp; Fonts:MEDFNT,MEDFNB -*-
1;;; this file contains the "hyperwindow slides" for the Los Angeles
;;; Financial WorkShop sponsored by Symbolics February 26, 1986
;;; (show-and-tell) is the function call

;;; grabbed from >hyper>slides>hc-herald.lisp*
;;; modified for Explorer March 16, 1986

(Defun 1HC-Herald *(window)
  (send window :clear-window)
  (send window :set-font-map (list fonts:bigfnt))
  (dotimes (i 6) (terpri window))
  (send window :set-font-map (list fonts:metsi))
  (princ "                           HyperCalc!")
  (dotimes (i 10.) (terpri window))
  (send window :set-font-map (list fonts:bigfnt))
  (send window :draw-line 400 200 600 200)
  (send window :draw-line 400 225 600 225)
  (send window :draw-line 400 250 600 250)
  (send window :draw-line 400 275 600 275)   
  (send window :draw-line 400 300 525 300) ;;; hidden line
  (send window :draw-line 400 200 400 400)
  (send window :draw-line 425 200 425 400)
  (send window :draw-line 450 200 450 400)
  (send window :draw-line 475 200 475 400)
  (send window :draw-line 500 200 500 400)
  
  ;; thicken cell 2 3
  (send window :draw-line 424 249 451 249)
  (send window :draw-line 451 249 451 276)
  (send window :draw-line 451 276 424 276)
  (send window :draw-line 424 276 424 249)
  ;; thick rectangle 100x60
  (send window :draw-line 525 285 625 285)
  (send window :draw-line 625 285 625 345)
  (send window :draw-line 525 345 625 345)
  (send window :draw-line 525 345 525 285)
  
  (send window :draw-line 524 284 626 284)
  (send window :draw-line 626 284 626 346)
  (send window :draw-line 524 346 626 346)
  (send window :draw-line 524 346 524 284)
  
  (send window :draw-line 526 286 624 286)
  (send window :draw-line 624 286 624 344)
  (send window :draw-line 526 344 624 344)
  (send window :draw-line 526 344 526 286)
  
  ;; connect from cell 2 3
  (send window :draw-line 425 250 525 285)
  (send window :draw-line 450 250 625 285)
  (send window :draw-line 450 275 525 305)  ;;; hidden line
  (send window :draw-line 425 275 525 345)
  
  ;; put string in the rectangle center 575 315
;;;  (send window :draw-string "Merge!" 540 320 612 320 fonts:tr18b)
  
;;;  (send window :set-font-map (list fonts:bigfnt))
;;;  (send window :home-cursor)

  (send window :set-font-map (list fonts:bigfnt))
  (send window :home-cursor)
  (princ "Type <system>-S to enter HyperCalc")(terpri)

;;;  (send window :draw-string "Type <Select>-S to enter HyperCalc" 10 40)
  (send window :set-cursorpos 10 75)
;;;  (send window :draw-string "or (slides) for an introduction" 10 75)
  
  ;; underline HyperCalc
;;;  (send window :draw-line 70 45 175 45)
   
  (send window :set-cursorpos 10 475)
  )

1;;; grabbed from >hyper>window>chaparral-demo.lisp*
(Defvar1 background-screen*
	(tv:make-window 'tv:Beveled-Border-Window
	   :borders 4
	   :radius 15.
	   :border-margin-width 5.
	   :outer-margin 2.
	   :edges-from tv:initial-lisp-listener
	   :label NIL
	   :blinker-p NIL
	   :font-map '(fonts:metsi)
	   :save-bits T
	   :deexposed-typeout-action :permit))

;;; Slides: 0:The Vision - 5 yrs, routinely; 1:Busy Decision Makers - sophisticated
;;; but casual, system requirements; 2:HyperCalc - why a spread spreadsheet on 
;;; LISPM, userinterface, spans the sprectrum
(defun 1LAX-Slides *()
  (Send background-screen :clear-window)
  (Let ((*landscape*
	  (Multiple-Value-Bind (width height)
	      (Send tv:main-screen :size)
	    (> width height))))
    (tv:Window-Call (background-screen :deexpose)
 	  (Format background-screen "~2&        Chaparral Dallas~
                               ~2&        Advanced Software~
                                ~&               For~
                                ~&        Symbolic Computer~
                                ~&             Systems")
	  (process-sleep 300. "Chaparral Dallas")
   (fixed-shadow-menu-choose
    '(("" :no-select nil)
      (" The Vision "
       :funcall-with-self 1call-slides-0 *:font fonts:metsi)
      ("" :no-select nil)
      (" Busy Decision Makers "
       :funcall-with-self 1call-slides-1 *:font fonts:metsi)
      ("" :no-select nil)
      (" HyperCalc! "
       :funcall-with-self 1call-slides-2 *:font fonts:metsi)
      ("" :no-select nil)
      )
    '(:string "      Knowledge Management     " :font fonts:metsi))

  ))
  )

   (defun 1SHOW-AND-TELL *()
	  (progn 1(lax-slides)*
	   1(hc-herald terminal-io)* ;;; try adding this here
	   ))
	   
1;;; The Vision*
(defun 1CALL-SLIDES-0 *(previous-menu)
  (fixed-shadow-sub-menu-choose
    '(("" :no-select nil)
      ("" :no-select nil)
  ("          Within Five Years,              "
      :no-select nil :font fonts:metsi)
      ("" :no-select nil)
  ("        the /"PC/" will be of the           "
      :no-select nil :font fonts:metsi)
      ("" :no-select nil)
  ("         /"Lisp Machine Class/".             "
      :no-select nil :font fonts:metsi)
      ("" :no-select nil)
      ("" :no-select nil)
   (" Slide the mouse off of this frame to expose the next slide  "
      :no-select nil :font fonts:tr12i)
      )
    '(:string "                  The Vision               "
     :font fonts:metsi)
    )
    (fixed-shadow-sub-menu-choose
    '(("" :no-select nil)
      ("" :no-select nil)
  ("           Busy Decision Makers will use              "
      :no-select nil :font fonts:metsi)
      ("" :no-select nil)
  ("   systems of the Lisp Machine class       "
      :no-select nil :font fonts:metsi)
      ("" :no-select nil)
  ("       routinely by the late '80s        "
      :no-select nil :font fonts:metsi)
      ("" :no-select nil)
      ("" :no-select nil)
   (" Slide the mouse off of this frame to expose the next slide  "
      :no-select nil :font fonts:tr12i)
      )
    '(:string "                       The Vision          "
     :font fonts:metsi)
    )
  (expose-warp-mouse-and-choose previous-menu)
)

1;;; Busy Decision Makers*
(defun 1CALL-SLIDES-1 *(previous-menu)
  (fixed-shadow-sub-menu-choose
    '(("" :no-select nil)
      ("" :no-select nil)
  ("       Busy Decision Makers are             "
      :no-select nil :font fonts:metsi)
      ("" :no-select nil)
  ("        sophisticated BUT casual             "
      :no-select nil :font fonts:metsi)
      ("" :no-select nil)
  ("       users of complex equipment.           "
      :no-select nil :font fonts:metsi)
      ("" :no-select nil)
      ("" :no-select nil)
   (" Slide the mouse off of this frame to expose the next slide  "
      :no-select nil :font fonts:tr12i)
      )
    '(:string "         Busy Decision Makers         "
     :font fonts:metsi)
    )

 (fixed-shadow-sub-menu-choose
    '(("" :no-select nil)
      ("" :no-select nil)
  (" Busy decision makers need powerful knowledge     "
      :no-select nil :font fonts:metsi)
      ("" :no-select nil)
  (" management tools for timely decisions! They're      "
      :no-select nil :font fonts:metsi)
      ("" :no-select nil)
  ("  drowning in information - they need the kind of     "
      :no-select nil :font fonts:metsi)
      ("" :no-select nil)
  ("  power and functionality that Lisp Machines can     "
      :no-select nil :font fonts:metsi)
      ("" :no-select nil)
  ("  provide and at the same time preserve their invest- "
      :no-select nil :font fonts:metsi)
      ("" :no-select nil)
  ("  ments in PCs and data-bases on main-frames          "
      :no-select nil :font fonts:metsi)
      ("" :no-select nil)
      ("" :no-select nil)
   (" Slide the mouse off of this frame to expose the next slide  "
      :no-select nil :font fonts:tr12i)
      )
    '(:string "        What Do Busy Decision Makers Need?         "
     :font fonts:metsi)
    )

(fixed-shadow-sub-menu-choose
    '(("" :no-select nil)
      ("" :no-select nil)
  (" Sophisticated but casual users *require* the user     "
      :no-select nil :font fonts:metsi)
  (" interface features of the Lisp Machine:                "
      :no-select nil :font fonts:metsi)
      ("" :no-select nil)
  ("    o /"mouse/" pointing device - no typing                      "
      :no-select nil :font fonts:metsi)
      ("" :no-select nil)
  ("     o command menus - no memory of commands             "
      :no-select nil :font fonts:metsi)
      ("" :no-select nil)
  ("     o context-sensitive help - when needed                     "
      :no-select nil :font fonts:metsi)
      ("" :no-select nil)
  ("     o large bit-map display - high bandwidth channel       "
      :no-select nil :font fonts:metsi)
      ("" :no-select nil)
      ("" :no-select nil)
   (" Slide the mouse off of this frame to expose the next slide  "
      :no-select nil :font fonts:tr12i)
      )
    '(:string "         Why Lisp Machines for Busy Decision Makers?         "
     :font fonts:metsi)
    )
  (expose-warp-mouse-and-choose previous-menu)
)

1;;; HyperCalc!*
(defun 1CALL-SLIDES-2 *(previous-menu)
  (fixed-shadow-sub-menu-choose
    '(("" :no-select nil)
      ("" :no-select nil)
  ("   First of all, spread-sheet software is the most   "
       :no-select nil :font fonts:metsi)
   ("     important software for the personal computer.    "
      :no-select nil :font fonts:metsi)
      ("" :no-select nil)
  ("      The Lisp Machine is a personal computer!          "
      :no-select nil :font fonts:metsi)
      ("" :no-select nil)
      ("" :no-select nil)
   (" Slide the mouse off of this frame to expose the next slide  "
      :no-select nil :font fonts:tr12i)
      )
    '(:string "           Why a Spread-Sheet on a Lisp Machine?       "
     :font fonts:metsi)
    )
(fixed-shadow-sub-menu-choose
    '(("" :no-select nil)
      ("" :no-select nil)
  ("  Secondly, the Lisp Machine permits the generation     "
       :no-select nil :font fonts:metsi)
   ("" :no-select nil)
   ("  of very large *interactive* spread-sheets, a major      "
      :no-select nil :font fonts:metsi)
      ("" :no-select nil)
  ("      problem with PCs.          "
      :no-select nil :font fonts:metsi)
      ("" :no-select nil)
      ("" :no-select nil)
   (" Slide the mouse off of this frame to expose the next slide  "
      :no-select nil :font fonts:tr12i)
      )
    '(:string "           Why a Spread-Sheet on a Lisp Machine?       "
     :font fonts:metsi)
    )
(fixed-shadow-sub-menu-choose
    '(("" :no-select nil)
      ("" :no-select nil)
  (" Thirdly, the spread-sheet paradigm is an important   "
       :no-select nil :font fonts:metsi)
       ("" :no-select nil)
   (" user interface! Busy decision makers /"think/" in      "
      :no-select nil :font fonts:metsi)
      ("" :no-select nil)
  ("  spread-sheet. It's a natural way of presenting         "
      :no-select nil :font fonts:metsi)
      ("" :no-select nil)
  ("  expert system information.                                   "
      :no-select nil :font fonts:metsi)
      ("" :no-select nil)
      ("" :no-select nil)
   (" Slide the mouse off of this frame to expose the next slide  "
      :no-select nil :font fonts:tr12i)
      )
    '(:string "           Why a Spread-Sheet on a Lisp Machine?       "
     :font fonts:metsi)
    )
(fixed-shadow-sub-menu-choose
    '(("" :no-select nil)
      ("" :no-select nil)
  (" The Lisp Machine permits a substantial superset of       "
       :no-select nil :font fonts:metsi)
       ("" :no-select nil)
   (" power and functionality over Lotus 1-2-3 on the PC.    "
      :no-select nil :font fonts:metsi)
      ("" :no-select nil)
  (" Ability to insert arbitrary programs in spread               "
      :no-select nil :font fonts:metsi)
      ("" :no-select nil)
  ("  sheet cells allows new and important knowledge           "
      :no-select nil :font fonts:metsi)
      ("" :no-select nil)
  (" management applications to be developed.                    "
      :no-select nil :font fonts:metsi)
      ("" :no-select nil)
      ("" :no-select nil)
   (" Slide the mouse off of this frame to expose the next slide  "
      :no-select nil :font fonts:tr12i)
      )
    '(:string "           Why a Spread-Sheet on a Lisp Machine?       "
     :font fonts:metsi)
    )
  (expose-warp-mouse-and-choose previous-menu)
)
;;; grabbed from >hyper>slides>hypercalc-slides

(DefConst 1Position *#-3600 '(:point 345. 400.)
	           #+3600 '(:point 535. 400.))

(DefVar1 Slide-Menu*
	(tv:make-window 'tv:Beveled-Shadow-Momentary-Menu
	       :borders 3
	       :radius 15.
	       :border-margin-width 5
	       :shadow-margin 20.))

(DefVar1 Slide-Sub-Menu*
	(tv:make-window 'tv:Beveled-Shadow-Momentary-Menu
	       :borders 3
	       :radius 15.
	       :border-margin-width 5
	       :shadow-margin 20.))

(Defun 1Fixed-Shadow-Menu-Choose *(alist &optional (label nil))
  (Send slide-menu :set-item-list alist)
  (Send slide-menu :set-label label)
  (expose-warp-mouse-and-choose slide-menu)
  )

(Defun 1Fixed-Shadow-Sub-Menu-Choose *(alist &optional (label nil))
  (Send slide-sub-menu :set-item-list alist)
  (Send slide-sub-menu :set-label label)
  (expose-warp-mouse-and-choose1 slide-sub-menu*)
  )

(Defun 1Expose-Warp-Mouse-And-Choose *(window)
  (tv:Expose-Window-Near window position)
  (Send window :set-mouse-position
	(// (+ (tv:Sheet-Inside-Left window)
	       (tv:sheet-Inside-Right window))
	    2)
	(// (+ (tv:Sheet-Inside-Top window)
	       (tv:sheet-Inside-Bottom window))
	    2))
  (Send window :choose)
  )

