/[emacs]/emacs/lisp/calc/calc-keypd.el
ViewVC logotype

Diff of /emacs/lisp/calc/calc-keypd.el

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.3 by walters, Wed Nov 14 09:04:49 2001 UTC revision 1.4 by walters, Mon Nov 19 07:34:59 2001 UTC
# Line 1  Line 1 
1  ;; Calculator for GNU Emacs, part II [calc-keypd.el]  ;;; calc-keypd.el --- mouse-capable keypad input for Calc
2    
3  ;; Copyright (C) 1990, 1991, 1992, 1993, 2001 Free Software Foundation, Inc.  ;; Copyright (C) 1990, 1991, 1992, 1993, 2001 Free Software Foundation, Inc.
4  ;; Written by Dave Gillespie, daveg@synaptics.com.  
5    ;; Author: David Gillespie <daveg@synaptics.com>
6    ;; Maintainer: Colin Walters <walters@debian.org>
7    
8  ;; This file is part of GNU Emacs.  ;; This file is part of GNU Emacs.
9    
# Line 19  Line 22 
22  ;; file named COPYING.  Among other things, the copyright notice  ;; file named COPYING.  Among other things, the copyright notice
23  ;; and this notice must be preserved on all copies.  ;; and this notice must be preserved on all copies.
24    
25    ;;; Commentary:
26    
27    ;;; Code:
28    
29    
30  ;; This file is autoloaded from calc-ext.el.  ;; This file is autoloaded from calc-ext.el.
# Line 29  Line 35 
35  (defun calc-Need-calc-keypd () nil)  (defun calc-Need-calc-keypd () nil)
36    
37    
   
 ;;; Pictorial interface to Calc using a mouse.  
   
38  (defvar calc-keypad-buffer nil)  (defvar calc-keypad-buffer nil)
39  (defvar calc-keypad-menu 0)  (defvar calc-keypad-menu 0)
40  (defvar calc-keypad-full-layout nil)  (defvar calc-keypad-full-layout nil)
# Line 39  Line 42 
42  (defvar calc-keypad-prev-input nil)  (defvar calc-keypad-prev-input nil)
43  (defvar calc-keypad-said-hello nil)  (defvar calc-keypad-said-hello nil)
44    
45  (defvar calc-keypad-map nil)  ;;; |----+----+----+----+----+----|
46  (unless calc-keypad-map  ;;; |  ENTER  |+/- |EEX |UNDO| <- |
47    (let ((map (make-sparse-keymap)))  ;;; |-----+---+-+--+--+-+---++----|
48      (define-key map " " 'calc-keypad-press)  ;;; | INV |  7  |  8  |  9  |  /  |
49      (define-key map (kbd "RET") 'calc-keypad-press)  ;;; |-----+-----+-----+-----+-----|
50      (define-key map (kbd "TAB") 'calc-keypad-menu)  ;;; | HYP |  4  |  5  |  6  |  *  |
51      (define-key map "q" 'calc-keypad-off)  ;;; |-----+-----+-----+-----+-----|
52      (define-key map [(mouse-3)] 'calc-keypad-right-click)  ;;; |EXEC |  1  |  2  |  3  |  -  |
53      (define-key map [(mouse-2)] 'calc-keypad-middle-click)  ;;; |-----+-----+-----+-----+-----|
54      (define-key map [(mouse-1)] 'calc-keypad-left-click)  ;;; | OFF |  0  |  .  | PI  |  +  |
55      (setq calc-keypad-map map)))  ;;; |-----+-----+-----+-----+-----|
56    (defvar calc-keypad-layout
57      '( ( ( "ENTER" calc-enter calc-roll-down calc-roll-up calc-over )
58           ( "ENTER" calc-enter calc-roll-down calc-roll-up calc-over )
59           ( "+/-"   calc-change-sign calc-inv (progn -4 calc-pack) )
60           ( "EEX"   ("e") (progn calc-num-prefix calc-pack-interval)
61                     (progn -5 calc-pack)  )
62           ( "UNDO"  calc-undo calc-redo calc-last-args )
63           ( "<-"    calc-pop (progn 0 calc-pop)
64                     (progn calc-num-prefix calc-pop) ) )
65         ( ( "INV"   calc-inverse )
66           ( "7"     ("7") calc-round )
67           ( "8"     ("8") (progn 2 calc-clean-num) )
68           ( "9"     ("9") calc-float )
69           ( "/"     calc-divide (progn calc-inverse calc-power) ) )
70         ( ( "HYP"   calc-hyperbolic )
71           ( "4"     ("4") calc-ln calc-log10 )
72           ( "5"     ("5") calc-exp calc-exp10 )
73           ( "6"     ("6") calc-abs )
74           ( "*"     calc-times calc-power ) )
75         ( ( "EXEC"  calc-keypad-execute )
76           ( "1"     ("1") calc-arcsin calc-sin )
77           ( "2"     ("2") calc-arccos calc-cos )
78           ( "3"     ("3") calc-arctan calc-tan )
79           ( "-"     calc-minus calc-conj ) )
80         ( ( "OFF"   calc-keypad-off )
81           ( "0"     ("0") calc-imaginary )
82           ( "."     (".") calc-precision )
83           ( "PI"    calc-pi )
84           ( "+"     calc-plus calc-sqrt ) ) ))
85    
86    (defvar calc-keypad-menus '( calc-keypad-math-menu
87                                 calc-keypad-funcs-menu
88                                 calc-keypad-binary-menu
89                                 calc-keypad-vector-menu
90                                 calc-keypad-modes-menu
91                                 calc-keypad-user-menu ) )
92    
93    ;;; |----+----+----+----+----+----|
94    ;;; |FLR |CEIL|RND |TRNC|CLN2|FLT |
95    ;;; |----+----+----+----+----+----|
96    ;;; | LN |EXP |    |ABS |IDIV|MOD |
97    ;;; |----+----+----+----+----+----|
98    ;;; |SIN |COS |TAN |SQRT|y^x |1/x |
99    
100    (defvar calc-keypad-math-menu
101      '( ( ( "FLR"   calc-floor )
102           ( "CEIL"  calc-ceiling )
103           ( "RND"   calc-round )
104           ( "TRNC"  calc-trunc )
105           ( "CLN2"  (progn 2 calc-clean-num) )
106           ( "FLT"   calc-float ) )
107         ( ( "LN"    calc-ln )
108           ( "EXP"   calc-exp )
109           ( ""      nil )
110           ( "ABS"   calc-abs )
111           ( "IDIV"  calc-idiv )
112           ( "MOD"   calc-mod ) )
113         ( ( "SIN"   calc-sin )
114           ( "COS"   calc-cos )
115           ( "TAN"   calc-tan )
116           ( "SQRT"  calc-sqrt )
117           ( "y^x"   calc-power )
118           ( "1/x"   calc-inv ) ) ))
119    
120    ;;; |----+----+----+----+----+----|
121    ;;; |IGAM|BETA|IBET|ERF |BESJ|BESY|
122    ;;; |----+----+----+----+----+----|
123    ;;; |IMAG|CONJ| RE |ATN2|RAND|RAGN|
124    ;;; |----+----+----+----+----+----|
125    ;;; |GCD |FACT|DFCT|BNOM|PERM|NXTP|
126    
127    (defvar calc-keypad-funcs-menu
128      '( ( ( "IGAM"  calc-inc-gamma )
129           ( "BETA"  calc-beta )
130           ( "IBET"  calc-inc-beta )
131           ( "ERF"   calc-erf )
132           ( "BESJ"  calc-bessel-J )
133           ( "BESY"  calc-bessel-Y ) )
134         ( ( "IMAG"  calc-imaginary )
135           ( "CONJ"  calc-conj )
136           ( "RE"    calc-re calc-im )
137           ( "ATN2"  calc-arctan2 )
138           ( "RAND"  calc-random )
139           ( "RAGN"  calc-random-again ) )
140         ( ( "GCD"   calc-gcd calc-lcm )
141           ( "FACT"  calc-factorial calc-gamma )
142           ( "DFCT"  calc-double-factorial )
143           ( "BNOM"  calc-choose )
144           ( "PERM"  calc-perm )
145           ( "NXTP"  calc-next-prime calc-prev-prime ) ) ))
146    
147    ;;; |----+----+----+----+----+----|
148    ;;; |AND | OR |XOR |NOT |LSH |RSH |
149    ;;; |----+----+----+----+----+----|
150    ;;; |DEC |HEX |OCT |BIN |WSIZ|ARSH|
151    ;;; |----+----+----+----+----+----|
152    ;;; | A  | B  | C  | D  | E  | F  |
153    
154    (defvar calc-keypad-binary-menu
155      '( ( ( "AND"   calc-and calc-diff )
156           ( "OR"    calc-or )
157           ( "XOR"   calc-xor )
158           ( "NOT"   calc-not calc-clip )
159           ( "LSH"   calc-lshift-binary calc-rotate-binary )
160           ( "RSH"   calc-rshift-binary ) )
161         ( ( "DEC"   calc-decimal-radix )
162           ( "HEX"   calc-hex-radix )
163           ( "OCT"   calc-octal-radix )
164           ( "BIN"   calc-binary-radix )
165           ( "WSIZ"  calc-word-size )
166           ( "ARSH"  calc-rshift-arith ) )
167         ( ( "A"     ("A") )
168           ( "B"     ("B") )
169           ( "C"     ("C") )
170           ( "D"     ("D") )
171           ( "E"     ("E") )
172           ( "F"     ("F") ) ) ))
173    
174    ;;; |----+----+----+----+----+----|
175    ;;; |SUM |PROD|MAX |MAP*|MAP^|MAP$|
176    ;;; |----+----+----+----+----+----|
177    ;;; |INV |DET |TRN |IDNT|CRSS|"x" |
178    ;;; |----+----+----+----+----+----|
179    ;;; |PACK|UNPK|INDX|BLD |LEN |... |
180    
181    (defvar calc-keypad-vector-menu
182      '( ( ( "SUM"   calc-vector-sum calc-vector-alt-sum calc-vector-mean )
183           ( "PROD"  calc-vector-product nil calc-vector-sdev )
184           ( "MAX"   calc-vector-max calc-vector-min calc-vector-median )
185           ( "MAP*"  (lambda () (interactive)
186                       (calc-map '(2 calcFunc-mul "*"))) )
187           ( "MAP^"  (lambda () (interactive)
188                       (calc-map '(2 calcFunc-pow "^"))) )
189           ( "MAP$"  calc-map-stack ) )
190         ( ( "MINV"  calc-inv )
191           ( "MDET"  calc-mdet )
192           ( "MTRN"  calc-transpose calc-conj-transpose )
193           ( "IDNT"  (progn calc-num-prefix calc-ident) )
194           ( "CRSS"  calc-cross )
195           ( "\"x\"" "\excalc-algebraic-entry\rx\r"
196                     "\excalc-algebraic-entry\ry\r"
197                     "\excalc-algebraic-entry\rz\r"
198                     "\excalc-algebraic-entry\rt\r") )
199         ( ( "PACK"  calc-pack )
200           ( "UNPK"  calc-unpack )
201           ( "INDX"  (progn calc-num-prefix calc-index) "\C-u\excalc-index\r" )
202           ( "BLD"   (progn calc-num-prefix calc-build-vector) )
203           ( "LEN"   calc-vlength )
204           ( "..."   calc-full-vectors ) ) ))
205    
206    ;;; |----+----+----+----+----+----|
207    ;;; |FLT |FIX |SCI |ENG |GRP |    |
208    ;;; |----+----+----+----+----+----|
209    ;;; |RAD |DEG |FRAC|POLR|SYMB|PREC|
210    ;;; |----+----+----+----+----+----|
211    ;;; |SWAP|RLL3|RLL4|OVER|STO |RCL |
212    
213    (defvar calc-keypad-modes-menu
214      '( ( ( "FLT"   calc-normal-notation
215                     (progn calc-num-prefix calc-normal-notation) )
216           ( "FIX"   (progn 2 calc-fix-notation)
217                     (progn calc-num-prefix calc-fix-notation) )
218           ( "SCI"   calc-sci-notation
219                     (progn calc-num-prefix calc-sci-notation) )
220           ( "ENG"   calc-eng-notation
221                     (progn calc-num-prefix calc-eng-notation) )
222           ( "GRP"   calc-group-digits "\C-u-3\excalc-group-digits\r" )
223           ( ""      nil ) )
224         ( ( "RAD"   calc-radians-mode )
225           ( "DEG"   calc-degrees-mode )
226           ( "FRAC"  calc-frac-mode )
227           ( "POLR"  calc-polar-mode )
228           ( "SYMB"  calc-symbolic-mode )
229           ( "PREC"  calc-precision ) )
230         ( ( "SWAP"  calc-roll-down )
231           ( "RLL3"  (progn 3 calc-roll-up) (progn 3 calc-roll-down) )
232           ( "RLL4"  (progn 4 calc-roll-up) (progn 4 calc-roll-down) )
233           ( "OVER"  calc-over )
234           ( "STO"   calc-keypad-store )
235           ( "RCL"   calc-keypad-recall ) ) ))
236    
237    (define-derived-mode calc-keypad-mode fundamental-mode "Calculator"
238      "Major mode for Calc keypad input."
239      (define-key calc-keypad-mode-map " " 'calc-keypad-press)
240      (define-key calc-keypad-mode-map (kbd "RET") 'calc-keypad-press)
241      (define-key calc-keypad-mode-map (kbd "TAB") 'calc-keypad-menu)
242      (define-key calc-keypad-mode-map "q" 'calc-keypad-off)
243      (define-key calc-keypad-mode-map [(mouse-3)] 'calc-keypad-right-click)
244      (define-key calc-keypad-mode-map [(mouse-2)] 'calc-keypad-middle-click)
245      (define-key calc-keypad-mode-map [(mouse-1)] 'calc-keypad-left-click)
246      (put 'calc-keypad-mode 'mode-class 'special)
247      (make-local-variable 'calc-main-buffer))
248    
249  (defun calc-do-keypad (&optional full-display interactive)  (defun calc-do-keypad (&optional full-display interactive)
250    (calc-create-buffer)    (calc-create-buffer)
251    (let ((calcbuf (current-buffer)))    (let ((calcbuf (current-buffer)))
252      (unless (and calc-keypad-buffer      (unless (bufferp calc-keypad-buffer)
253                   (buffer-name calc-keypad-buffer))        (set-buffer (setq calc-keypad-buffer (get-buffer-create "*Calc Keypad*")))
254        (setq calc-keypad-buffer (get-buffer-create "*Calc Keypad*"))        (calc-keypad-mode)
       (set-buffer calc-keypad-buffer)  
       (use-local-map calc-keypad-map)  
       (setq major-mode 'calc-keypad)  
       (setq mode-name "Calculator")  
       (put 'calc-keypad 'mode-class 'special)  
       (make-local-variable 'calc-main-buffer)  
255        (setq calc-main-buffer calcbuf)        (setq calc-main-buffer calcbuf)
256        (calc-keypad-redraw)        (calc-keypad-redraw)
257        (calc-trail-buffer))        (calc-trail-buffer))
# Line 114  Line 303 
303            (split-window win (- (window-height win) height 1))            (split-window win (- (window-height win) height 1))
304            (set-window-buffer win calcbuf))            (set-window-buffer win calcbuf))
305          (select-window old-win)          (select-window old-win)
306          (message "Welcome to GNU Emacs Calc!  Use the left and right mouse buttons.")          (message "Welcome to GNU Emacs Calc!  Use the left and right mouse buttons")
307          (run-hooks 'calc-keypad-start-hook)          (run-hooks 'calc-keypad-start-hook)
308          (and calc-keypad-said-hello interactive          (and calc-keypad-said-hello interactive
309               (progn               (progn
# Line 193  Line 382 
382    
383  (defun calc-keypad-press ()  (defun calc-keypad-press ()
384    (interactive)    (interactive)
385    (or (eq major-mode 'calc-keypad)    (unless (eq major-mode 'calc-keypad-mode)
386        (error "Must be in *Calc Keypad* buffer for this command"))      (error "Must be in *Calc Keypad* buffer for this command"))
387    (let* ((row (save-excursion    (let* ((row (save-excursion
388                  (beginning-of-line)                  (beginning-of-line)
389                  (count-lines (point-min) (point))))                  (count-lines (point-min) (point))))
390           (y (/ row 2))           (y (/ row 2))
391           (x (/ (current-column) (if (>= y 4) 6 5)))           (x (/ (current-column) (if (>= y 4) 6 5)))
392           radix frac inv           radix frac inv
393           (hyp (save-excursion           (hyp (with-current-buffer calc-main-buffer
                 (set-buffer calc-main-buffer)  
394                  (setq radix calc-number-radix                  (setq radix calc-number-radix
395                        frac calc-prefer-frac                        frac calc-prefer-frac
396                        inv calc-inverse-flag)                        inv calc-inverse-flag)
# Line 363  Line 551 
551    
552  (defun calc-keypad-menu ()  (defun calc-keypad-menu ()
553    (interactive)    (interactive)
554    (unless (eq major-mode 'calc-keypad)    (unless (eq major-mode 'calc-keypad-mode)
555      (error "Must be in *Calc Keypad* buffer for this command"))      (error "Must be in *Calc Keypad* buffer for this command"))
556    (while (progn (setq calc-keypad-menu (% (1+ calc-keypad-menu)    (while (progn (setq calc-keypad-menu (% (1+ calc-keypad-menu)
557                                            (length calc-keypad-menus)))                                            (length calc-keypad-menus)))
# Line 372  Line 560 
560    
561  (defun calc-keypad-menu-back ()  (defun calc-keypad-menu-back ()
562    (interactive)    (interactive)
563    (or (eq major-mode 'calc-keypad)    (or (eq major-mode 'calc-keypad-mode)
564        (error "Must be in *Calc Keypad* buffer for this command"))        (error "Must be in *Calc Keypad* buffer for this command"))
565    (while (progn (setq calc-keypad-menu (% (1- (+ calc-keypad-menu    (while (progn (setq calc-keypad-menu (% (1- (+ calc-keypad-menu
566                                                   (length calc-keypad-menus)))                                                   (length calc-keypad-menus)))
# Line 391  Line 579 
579  (defun calc-pack-interval (mode)  (defun calc-pack-interval (mode)
580    (interactive "p")    (interactive "p")
581    (if (or (< mode 0) (> mode 3))    (if (or (< mode 0) (> mode 3))
582        (error "Open/close code should be in the range from 0 to 3."))        (error "Open/close code should be in the range from 0 to 3"))
583    (calc-pack (- -6 mode)))    (calc-pack (- -6 mode)))
584    
585  (defun calc-keypad-execute ()  (defun calc-keypad-execute ()
# Line 424  Line 612 
612        (error "Not a Calc command: %s" (key-description keys)))))        (error "Not a Calc command: %s" (key-description keys)))))
613    
614    
 ;;; |----+----+----+----+----+----|  
 ;;; |  ENTER  |+/- |EEX |UNDO| <- |  
 ;;; |-----+---+-+--+--+-+---++----|  
 ;;; | INV |  7  |  8  |  9  |  /  |  
 ;;; |-----+-----+-----+-----+-----|  
 ;;; | HYP |  4  |  5  |  6  |  *  |  
 ;;; |-----+-----+-----+-----+-----|  
 ;;; |EXEC |  1  |  2  |  3  |  -  |  
 ;;; |-----+-----+-----+-----+-----|  
 ;;; | OFF |  0  |  .  | PI  |  +  |  
 ;;; |-----+-----+-----+-----+-----|  
   
 (defvar calc-keypad-layout  
   '( ( ( "ENTER" calc-enter calc-roll-down calc-roll-up calc-over )  
        ( "ENTER" calc-enter calc-roll-down calc-roll-up calc-over )  
        ( "+/-"   calc-change-sign calc-inv (progn -4 calc-pack) )  
        ( "EEX"   ("e") (progn calc-num-prefix calc-pack-interval)  
                  (progn -5 calc-pack)  )  
        ( "UNDO"  calc-undo calc-redo calc-last-args )  
        ( "<-"    calc-pop (progn 0 calc-pop)  
                  (progn calc-num-prefix calc-pop) ) )  
      ( ( "INV"   calc-inverse )  
        ( "7"     ("7") calc-round )  
        ( "8"     ("8") (progn 2 calc-clean-num) )  
        ( "9"     ("9") calc-float )  
        ( "/"     calc-divide (progn calc-inverse calc-power) ) )  
      ( ( "HYP"   calc-hyperbolic )  
        ( "4"     ("4") calc-ln calc-log10 )  
        ( "5"     ("5") calc-exp calc-exp10 )  
        ( "6"     ("6") calc-abs )  
        ( "*"     calc-times calc-power ) )  
      ( ( "EXEC"  calc-keypad-execute )  
        ( "1"     ("1") calc-arcsin calc-sin )  
        ( "2"     ("2") calc-arccos calc-cos )  
        ( "3"     ("3") calc-arctan calc-tan )  
        ( "-"     calc-minus calc-conj ) )  
      ( ( "OFF"   calc-keypad-off )  
        ( "0"     ("0") calc-imaginary )  
        ( "."     (".") calc-precision )  
        ( "PI"    calc-pi )  
        ( "+"     calc-plus calc-sqrt ) ) ))  
   
 (defvar calc-keypad-menus '( calc-keypad-math-menu  
                              calc-keypad-funcs-menu  
                              calc-keypad-binary-menu  
                              calc-keypad-vector-menu  
                              calc-keypad-modes-menu  
                              calc-keypad-user-menu ) )  
   
 ;;; |----+----+----+----+----+----|  
 ;;; |FLR |CEIL|RND |TRNC|CLN2|FLT |  
 ;;; |----+----+----+----+----+----|  
 ;;; | LN |EXP |    |ABS |IDIV|MOD |  
 ;;; |----+----+----+----+----+----|  
 ;;; |SIN |COS |TAN |SQRT|y^x |1/x |  
   
 (defvar calc-keypad-math-menu  
   '( ( ( "FLR"   calc-floor )  
        ( "CEIL"  calc-ceiling )  
        ( "RND"   calc-round )  
        ( "TRNC"  calc-trunc )  
        ( "CLN2"  (progn 2 calc-clean-num) )  
        ( "FLT"   calc-float ) )  
      ( ( "LN"    calc-ln )  
        ( "EXP"   calc-exp )  
        ( ""      nil )  
        ( "ABS"   calc-abs )  
        ( "IDIV"  calc-idiv )  
        ( "MOD"   calc-mod ) )  
      ( ( "SIN"   calc-sin )  
        ( "COS"   calc-cos )  
        ( "TAN"   calc-tan )  
        ( "SQRT"  calc-sqrt )  
        ( "y^x"   calc-power )  
        ( "1/x"   calc-inv ) ) ))  
   
 ;;; |----+----+----+----+----+----|  
 ;;; |IGAM|BETA|IBET|ERF |BESJ|BESY|  
 ;;; |----+----+----+----+----+----|  
 ;;; |IMAG|CONJ| RE |ATN2|RAND|RAGN|  
 ;;; |----+----+----+----+----+----|  
 ;;; |GCD |FACT|DFCT|BNOM|PERM|NXTP|  
   
 (defvar calc-keypad-funcs-menu  
   '( ( ( "IGAM"  calc-inc-gamma )  
        ( "BETA"  calc-beta )  
        ( "IBET"  calc-inc-beta )  
        ( "ERF"   calc-erf )  
        ( "BESJ"  calc-bessel-J )  
        ( "BESY"  calc-bessel-Y ) )  
      ( ( "IMAG"  calc-imaginary )  
        ( "CONJ"  calc-conj )  
        ( "RE"    calc-re calc-im )  
        ( "ATN2"  calc-arctan2 )  
        ( "RAND"  calc-random )  
        ( "RAGN"  calc-random-again ) )  
      ( ( "GCD"   calc-gcd calc-lcm )  
        ( "FACT"  calc-factorial calc-gamma )  
        ( "DFCT"  calc-double-factorial )  
        ( "BNOM"  calc-choose )  
        ( "PERM"  calc-perm )  
        ( "NXTP"  calc-next-prime calc-prev-prime ) ) ))  
   
 ;;; |----+----+----+----+----+----|  
 ;;; |AND | OR |XOR |NOT |LSH |RSH |  
 ;;; |----+----+----+----+----+----|  
 ;;; |DEC |HEX |OCT |BIN |WSIZ|ARSH|  
 ;;; |----+----+----+----+----+----|  
 ;;; | A  | B  | C  | D  | E  | F  |  
   
 (defvar calc-keypad-binary-menu  
   '( ( ( "AND"   calc-and calc-diff )  
        ( "OR"    calc-or )  
        ( "XOR"   calc-xor )  
        ( "NOT"   calc-not calc-clip )  
        ( "LSH"   calc-lshift-binary calc-rotate-binary )  
        ( "RSH"   calc-rshift-binary ) )  
      ( ( "DEC"   calc-decimal-radix )  
        ( "HEX"   calc-hex-radix )  
        ( "OCT"   calc-octal-radix )  
        ( "BIN"   calc-binary-radix )  
        ( "WSIZ"  calc-word-size )  
        ( "ARSH"  calc-rshift-arith ) )  
      ( ( "A"     ("A") )  
        ( "B"     ("B") )  
        ( "C"     ("C") )  
        ( "D"     ("D") )  
        ( "E"     ("E") )  
        ( "F"     ("F") ) ) ))  
   
 ;;; |----+----+----+----+----+----|  
 ;;; |SUM |PROD|MAX |MAP*|MAP^|MAP$|  
 ;;; |----+----+----+----+----+----|  
 ;;; |INV |DET |TRN |IDNT|CRSS|"x" |  
 ;;; |----+----+----+----+----+----|  
 ;;; |PACK|UNPK|INDX|BLD |LEN |... |  
   
 (defvar calc-keypad-vector-menu  
   '( ( ( "SUM"   calc-vector-sum calc-vector-alt-sum calc-vector-mean )  
        ( "PROD"  calc-vector-product nil calc-vector-sdev )  
        ( "MAX"   calc-vector-max calc-vector-min calc-vector-median )  
        ( "MAP*"  (lambda () (interactive)  
                    (calc-map '(2 calcFunc-mul "*"))) )  
        ( "MAP^"  (lambda () (interactive)  
                    (calc-map '(2 calcFunc-pow "^"))) )  
        ( "MAP$"  calc-map-stack ) )  
      ( ( "MINV"  calc-inv )  
        ( "MDET"  calc-mdet )  
        ( "MTRN"  calc-transpose calc-conj-transpose )  
        ( "IDNT"  (progn calc-num-prefix calc-ident) )  
        ( "CRSS"  calc-cross )  
        ( "\"x\"" "\excalc-algebraic-entry\rx\r"  
                  "\excalc-algebraic-entry\ry\r"  
                  "\excalc-algebraic-entry\rz\r"  
                  "\excalc-algebraic-entry\rt\r") )  
      ( ( "PACK"  calc-pack )  
        ( "UNPK"  calc-unpack )  
        ( "INDX"  (progn calc-num-prefix calc-index) "\C-u\excalc-index\r" )  
        ( "BLD"   (progn calc-num-prefix calc-build-vector) )  
        ( "LEN"   calc-vlength )  
        ( "..."   calc-full-vectors ) ) ))  
   
 ;;; |----+----+----+----+----+----|  
 ;;; |FLT |FIX |SCI |ENG |GRP |    |  
 ;;; |----+----+----+----+----+----|  
 ;;; |RAD |DEG |FRAC|POLR|SYMB|PREC|  
 ;;; |----+----+----+----+----+----|  
 ;;; |SWAP|RLL3|RLL4|OVER|STO |RCL |  
   
 (defvar calc-keypad-modes-menu  
   '( ( ( "FLT"   calc-normal-notation  
                  (progn calc-num-prefix calc-normal-notation) )  
        ( "FIX"   (progn 2 calc-fix-notation)  
                  (progn calc-num-prefix calc-fix-notation) )  
        ( "SCI"   calc-sci-notation  
                  (progn calc-num-prefix calc-sci-notation) )  
        ( "ENG"   calc-eng-notation  
                  (progn calc-num-prefix calc-eng-notation) )  
        ( "GRP"   calc-group-digits "\C-u-3\excalc-group-digits\r" )  
        ( ""      nil ) )  
      ( ( "RAD"   calc-radians-mode )  
        ( "DEG"   calc-degrees-mode )  
        ( "FRAC"  calc-frac-mode )  
        ( "POLR"  calc-polar-mode )  
        ( "SYMB"  calc-symbolic-mode )  
        ( "PREC"  calc-precision ) )  
      ( ( "SWAP"  calc-roll-down )  
        ( "RLL3"  (progn 3 calc-roll-up) (progn 3 calc-roll-down) )  
        ( "RLL4"  (progn 4 calc-roll-up) (progn 4 calc-roll-down) )  
        ( "OVER"  calc-over )  
        ( "STO"   calc-keypad-store )  
        ( "RCL"   calc-keypad-recall ) ) ))  
   
615  ;;; calc-keypd.el ends here  ;;; calc-keypd.el ends here

Legend:
Removed from v.1.3  
changed lines
  Added in v.1.4

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26