;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; calc-interface.lisp -- an MCL interface for calc.lisp ;; ;; c) 1999, Lee Spector ;; ;; version 1.19990329 (n.yyyymmdd) (defvar *calc-display-view* nil "The view for the stack-based calculator interface") (defun calc-display () "Displays the current *calc-display-string* in the interface's CALC-DISPLAY-ITEM." (let ((item (find 'CALC-DISPLAY-ITEM (dialog-items *calc-display-view*) :key #'view-nick-name))) (set-dialog-item-text item *calc-display-string*))) (setq *calc-display-view* ;; here is the dialog source, generated by the interface toolkit (MAKE-INSTANCE 'COLOR-DIALOG :WINDOW-TYPE :TOOL :WINDOW-TITLE "Stack-based Calculator" :VIEW-POSITION #@(131 60) :VIEW-SIZE #@(216 272) :VIEW-FONT '("Charcoal" 12 :SRCOR :PLAIN (:COLOR-INDEX 0)) :VIEW-SUBVIEWS (LIST (MAKE-DIALOG-ITEM 'STATIC-TEXT-DIALOG-ITEM #@(7 10) #@(204 20) "#c(-2048820.8257419362 1225374.1834145607)" 'NIL :VIEW-NICK-NAME 'CALC-DISPLAY-ITEM :VIEW-FONT '("Courier" 18 :SRCOR :BOLD (:COLOR-INDEX 0)) :PART-COLOR-LIST '(:TEXT 16284503 :BODY 0 :FRAME 0)) (MAKE-DIALOG-ITEM 'BUTTON-DIALOG-ITEM #@(40 207) #@(29 26) "1" #'(LAMBDA (ITEM) ITEM (CALC-1) (CALC-DISPLAY)) :DEFAULT-BUTTON NIL) (MAKE-DIALOG-ITEM 'BUTTON-DIALOG-ITEM #@(6 176) #@(29 26) "+" #'(LAMBDA (ITEM) ITEM (CALC-+) (CALC-DISPLAY)) :DEFAULT-BUTTON NIL) (MAKE-DIALOG-ITEM 'BUTTON-DIALOG-ITEM #@(146 207) #@(62 26) "ENTER" #'(LAMBDA (ITEM) ITEM (CALC-ENTER) (CALC-DISPLAY)) :DEFAULT-BUTTON NIL) (MAKE-DIALOG-ITEM 'BUTTON-DIALOG-ITEM #@(134 101) #@(74 18) "PRINT STATE" #'(LAMBDA (ITEM) ITEM (PRINT-STATE)) :VIEW-FONT '("Monaco" 9 :SRCOR :PLAIN (:COLOR-INDEX 0)) :DEFAULT-BUTTON NIL) (MAKE-DIALOG-ITEM 'BUTTON-DIALOG-ITEM #@(74 207) #@(29 26) "2" #'(LAMBDA (ITEM) ITEM (CALC-2) (CALC-DISPLAY)) :DEFAULT-BUTTON NIL) (MAKE-DIALOG-ITEM 'BUTTON-DIALOG-ITEM #@(108 207) #@(29 26) "3" #'(LAMBDA (ITEM) ITEM (CALC-3) (CALC-DISPLAY)) :DEFAULT-BUTTON NIL) (MAKE-DIALOG-ITEM 'BUTTON-DIALOG-ITEM #@(108 176) #@(29 26) "6" #'(LAMBDA (ITEM) ITEM (CALC-6) (CALC-DISPLAY)) :DEFAULT-BUTTON NIL) (MAKE-DIALOG-ITEM 'BUTTON-DIALOG-ITEM #@(74 176) #@(29 26) "5" #'(LAMBDA (ITEM) ITEM (CALC-5) (CALC-DISPLAY)) :DEFAULT-BUTTON NIL) (MAKE-DIALOG-ITEM 'BUTTON-DIALOG-ITEM #@(40 176) #@(29 26) "4" #'(LAMBDA (ITEM) ITEM (CALC-4) (CALC-DISPLAY)) :DEFAULT-BUTTON NIL) (MAKE-DIALOG-ITEM 'BUTTON-DIALOG-ITEM #@(40 146) #@(29 26) "7" #'(LAMBDA (ITEM) ITEM (CALC-7) (CALC-DISPLAY)) :DEFAULT-BUTTON NIL) (MAKE-DIALOG-ITEM 'BUTTON-DIALOG-ITEM #@(74 146) #@(29 26) "8" #'(LAMBDA (ITEM) ITEM (CALC-8) (CALC-DISPLAY)) :DEFAULT-BUTTON NIL) (MAKE-DIALOG-ITEM 'BUTTON-DIALOG-ITEM #@(107 146) #@(29 26) "9" #'(LAMBDA (ITEM) ITEM (CALC-9) (CALC-DISPLAY)) :DEFAULT-BUTTON NIL) (MAKE-DIALOG-ITEM 'BUTTON-DIALOG-ITEM #@(40 238) #@(29 26) "0" #'(LAMBDA (ITEM) ITEM (CALC-0) (CALC-DISPLAY)) :DEFAULT-BUTTON NIL) (MAKE-DIALOG-ITEM 'BUTTON-DIALOG-ITEM #@(74 238) #@(29 26) "." #'(LAMBDA (ITEM) ITEM (CALC-.) (CALC-DISPLAY)) :DEFAULT-BUTTON NIL) (MAKE-DIALOG-ITEM 'BUTTON-DIALOG-ITEM #@(146 238) #@(62 26) "CLEAR" #'(LAMBDA (ITEM) ITEM (CALC-CLEAR) (CALC-DISPLAY)) :DEFAULT-BUTTON NIL) (MAKE-DIALOG-ITEM 'BUTTON-DIALOG-ITEM #@(6 146) #@(29 26) "-" #'(LAMBDA (ITEM) ITEM (CALC--) (CALC-DISPLAY)) :DEFAULT-BUTTON NIL) (MAKE-DIALOG-ITEM 'BUTTON-DIALOG-ITEM #@(6 207) #@(29 26) "x" #'(LAMBDA (ITEM) ITEM (CALC-*) (CALC-DISPLAY)) :DEFAULT-BUTTON NIL) (MAKE-DIALOG-ITEM 'BUTTON-DIALOG-ITEM #@(6 238) #@(29 26) "/" #'(LAMBDA (ITEM) ITEM (CALC-/) (CALC-DISPLAY)) :DEFAULT-BUTTON NIL) (MAKE-DIALOG-ITEM 'BUTTON-DIALOG-ITEM #@(7 100) #@(38 25) "x^y" #'(LAMBDA (ITEM) ITEM (CALC-X^Y) (CALC-DISPLAY)) :DEFAULT-BUTTON NIL) (MAKE-DIALOG-ITEM 'BUTTON-DIALOG-ITEM #@(108 238) #@(29 26) "+/-" #'(LAMBDA (ITEM) ITEM (CALC-CHS) (CALC-DISPLAY)) :DEFAULT-BUTTON NIL) (MAKE-DIALOG-ITEM 'BUTTON-DIALOG-ITEM #@(7 46) #@(38 25) "SQRT" #'(LAMBDA (ITEM) ITEM (CALC-SQRT) (CALC-DISPLAY)) :DEFAULT-BUTTON NIL) (MAKE-DIALOG-ITEM 'BUTTON-DIALOG-ITEM #@(7 73) #@(38 25) "x^2" #'(LAMBDA (ITEM) ITEM (CALC-SQ) (CALC-DISPLAY)) :DEFAULT-BUTTON NIL) (MAKE-DIALOG-ITEM 'BUTTON-DIALOG-ITEM #@(91 73) #@(38 25) "ABS" #'(LAMBDA (ITEM) ITEM (CALC-ABS) (CALC-DISPLAY)) :DEFAULT-BUTTON NIL) (MAKE-DIALOG-ITEM 'BUTTON-DIALOG-ITEM #@(146 146) #@(29 26) "pi" #'(LAMBDA (ITEM) ITEM (CALC-PI) (CALC-DISPLAY)) :DEFAULT-BUTTON NIL) (MAKE-DIALOG-ITEM 'BUTTON-DIALOG-ITEM #@(179 146) #@(29 26) "e" #'(LAMBDA (ITEM) ITEM (CALC-E) (CALC-DISPLAY)) :DEFAULT-BUTTON NIL) (MAKE-DIALOG-ITEM 'BUTTON-DIALOG-ITEM #@(91 100) #@(38 25) "ln" #'(LAMBDA (ITEM) ITEM (CALC-LN) (CALC-DISPLAY)) :DEFAULT-BUTTON NIL) (MAKE-DIALOG-ITEM 'BUTTON-DIALOG-ITEM #@(49 46) #@(38 25) "SIN" #'(LAMBDA (ITEM) ITEM (CALC-SIN) (CALC-DISPLAY)) :DEFAULT-BUTTON NIL) (MAKE-DIALOG-ITEM 'BUTTON-DIALOG-ITEM #@(49 73) #@(38 25) "COS" #'(LAMBDA (ITEM) ITEM (CALC-COS) (CALC-DISPLAY)) :DEFAULT-BUTTON NIL) (MAKE-DIALOG-ITEM 'BUTTON-DIALOG-ITEM #@(49 100) #@(38 25) "TAN" #'(LAMBDA (ITEM) ITEM (CALC-TAN) (CALC-DISPLAY)) :DEFAULT-BUTTON NIL) (MAKE-DIALOG-ITEM 'BUTTON-DIALOG-ITEM #@(91 46) #@(38 25) "1/x" #'(LAMBDA (ITEM) ITEM (CALC-1/X) (CALC-DISPLAY)) :DEFAULT-BUTTON NIL) (MAKE-DIALOG-ITEM 'BUTTON-DIALOG-ITEM #@(136 45) #@(29 26) "A" #'(LAMBDA (ITEM) ITEM (CALC-A) (CALC-DISPLAY)) :DEFAULT-BUTTON NIL) (MAKE-DIALOG-ITEM 'BUTTON-DIALOG-ITEM #@(168 45) #@(41 26) "SET A" #'(LAMBDA (ITEM) ITEM (CALC-SET-A (READ-FROM-STRING (GET-STRING-FROM-USER "Enter a value for memory register A")))) :VIEW-FONT '("Monaco" 9 :SRCOR :PLAIN (:COLOR-INDEX 0)) :DEFAULT-BUTTON NIL) (MAKE-DIALOG-ITEM 'BUTTON-DIALOG-ITEM #@(168 73) #@(41 26) "SET B" #'(LAMBDA (ITEM) ITEM (CALC-SET-B (READ-FROM-STRING (GET-STRING-FROM-USER "Enter a value for memory register B")))) :VIEW-FONT '("Monaco" 9 :SRCOR :PLAIN (:COLOR-INDEX 0)) :DEFAULT-BUTTON NIL) (MAKE-DIALOG-ITEM 'BUTTON-DIALOG-ITEM #@(146 176) #@(62 27) "x<->y" #'(LAMBDA (ITEM) ITEM (CALC-X<->Y) (CALC-DISPLAY)) :DEFAULT-BUTTON NIL) (MAKE-DIALOG-ITEM 'BUTTON-DIALOG-ITEM #@(136 73) #@(29 26) "B" #'(LAMBDA (ITEM) ITEM (CALC-B) (CALC-DISPLAY)) :DEFAULT-BUTTON NIL) (MAKE-DIALOG-ITEM 'BUTTON-DIALOG-ITEM #@(134 121) #@(74 18) "REFRESH" #'(LAMBDA (ITEM) ITEM (CALC-DISPLAY)) :VIEW-FONT '("Monaco" 9 :SRCOR :PLAIN (:COLOR-INDEX 0)) :DEFAULT-BUTTON NIL))) ) ;; make the interface's state current (calc-display)