aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorColin Walters2001-11-19 07:34:59 +0000
committerColin Walters2001-11-19 07:34:59 +0000
commit1e253dcb115e9c30fbc190427f26e9a1da332f65 (patch)
tree098b9a60e4c9dd3a26b223055e6ac8e42b5b3b6d
parent12f1951a27a8c671d74d68540398a0adf674946f (diff)
downloademacs-1e253dcb115e9c30fbc190427f26e9a1da332f65.tar.gz
emacs-1e253dcb115e9c30fbc190427f26e9a1da332f65.zip
(calc-keypad-mode): New.
(calc-do-keypad): Use it. (calc-keypad-map): Move into `calc-keypad-mode'. Change all toplevel `setq' forms to `defvar' forms, and move them before their first use. Use `when', `unless'. Remove trailing periods from error forms. Add description and headers suggested by Emacs Lisp coding conventions.
-rw-r--r--lisp/calc/calc-keypd.el447
1 files changed, 221 insertions, 226 deletions
diff --git a/lisp/calc/calc-keypd.el b/lisp/calc/calc-keypd.el
index 550ba4e7f50..834736a3cf1 100644
--- a/lisp/calc/calc-keypd.el
+++ b/lisp/calc/calc-keypd.el
@@ -1,6 +1,9 @@
1;; Calculator for GNU Emacs, part II [calc-keypd.el] 1;;; calc-keypd.el --- mouse-capable keypad input for Calc
2
2;; Copyright (C) 1990, 1991, 1992, 1993, 2001 Free Software Foundation, Inc. 3;; Copyright (C) 1990, 1991, 1992, 1993, 2001 Free Software Foundation, Inc.
3;; Written by Dave Gillespie, daveg@synaptics.com. 4
5;; Author: David Gillespie <daveg@synaptics.com>
6;; Maintainer: Colin Walters <walters@debian.org>
4 7
5;; This file is part of GNU Emacs. 8;; This file is part of GNU Emacs.
6 9
@@ -19,6 +22,9 @@
19;; file named COPYING. Among other things, the copyright notice 22;; file named COPYING. Among other things, the copyright notice
20;; and this notice must be preserved on all copies. 23;; and this notice must be preserved on all copies.
21 24
25;;; Commentary:
26
27;;; Code:
22 28
23 29
24;; This file is autoloaded from calc-ext.el. 30;; This file is autoloaded from calc-ext.el.
@@ -29,9 +35,6 @@
29(defun calc-Need-calc-keypd () nil) 35(defun calc-Need-calc-keypd () nil)
30 36
31 37
32
33;;; Pictorial interface to Calc using a mouse.
34
35(defvar calc-keypad-buffer nil) 38(defvar calc-keypad-buffer nil)
36(defvar calc-keypad-menu 0) 39(defvar calc-keypad-menu 0)
37(defvar calc-keypad-full-layout nil) 40(defvar calc-keypad-full-layout nil)
@@ -39,30 +42,216 @@
39(defvar calc-keypad-prev-input nil) 42(defvar calc-keypad-prev-input nil)
40(defvar calc-keypad-said-hello nil) 43(defvar calc-keypad-said-hello nil)
41 44
42(defvar calc-keypad-map nil) 45;;; |----+----+----+----+----+----|
43(unless calc-keypad-map 46;;; | ENTER |+/- |EEX |UNDO| <- |
44 (let ((map (make-sparse-keymap))) 47;;; |-----+---+-+--+--+-+---++----|
45 (define-key map " " 'calc-keypad-press) 48;;; | INV | 7 | 8 | 9 | / |
46 (define-key map (kbd "RET") 'calc-keypad-press) 49;;; |-----+-----+-----+-----+-----|
47 (define-key map (kbd "TAB") 'calc-keypad-menu) 50;;; | HYP | 4 | 5 | 6 | * |
48 (define-key map "q" 'calc-keypad-off) 51;;; |-----+-----+-----+-----+-----|
49 (define-key map [(mouse-3)] 'calc-keypad-right-click) 52;;; |EXEC | 1 | 2 | 3 | - |
50 (define-key map [(mouse-2)] 'calc-keypad-middle-click) 53;;; |-----+-----+-----+-----+-----|
51 (define-key map [(mouse-1)] 'calc-keypad-left-click) 54;;; | OFF | 0 | . | PI | + |
52 (setq calc-keypad-map map))) 55;;; |-----+-----+-----+-----+-----|
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))
53 248
54(defun calc-do-keypad (&optional full-display interactive) 249(defun calc-do-keypad (&optional full-display interactive)
55 (calc-create-buffer) 250 (calc-create-buffer)
56 (let ((calcbuf (current-buffer))) 251 (let ((calcbuf (current-buffer)))
57 (unless (and calc-keypad-buffer 252 (unless (bufferp calc-keypad-buffer)
58 (buffer-name calc-keypad-buffer)) 253 (set-buffer (setq calc-keypad-buffer (get-buffer-create "*Calc Keypad*")))
59 (setq calc-keypad-buffer (get-buffer-create "*Calc Keypad*")) 254 (calc-keypad-mode)
60 (set-buffer calc-keypad-buffer)
61 (use-local-map calc-keypad-map)
62 (setq major-mode 'calc-keypad)
63 (setq mode-name "Calculator")
64 (put 'calc-keypad 'mode-class 'special)
65 (make-local-variable 'calc-main-buffer)
66 (setq calc-main-buffer calcbuf) 255 (setq calc-main-buffer calcbuf)
67 (calc-keypad-redraw) 256 (calc-keypad-redraw)
68 (calc-trail-buffer)) 257 (calc-trail-buffer))
@@ -114,7 +303,7 @@
114 (split-window win (- (window-height win) height 1)) 303 (split-window win (- (window-height win) height 1))
115 (set-window-buffer win calcbuf)) 304 (set-window-buffer win calcbuf))
116 (select-window old-win) 305 (select-window old-win)
117 (message "Welcome to GNU Emacs Calc! Use the left and right mouse buttons.") 306 (message "Welcome to GNU Emacs Calc! Use the left and right mouse buttons")
118 (run-hooks 'calc-keypad-start-hook) 307 (run-hooks 'calc-keypad-start-hook)
119 (and calc-keypad-said-hello interactive 308 (and calc-keypad-said-hello interactive
120 (progn 309 (progn
@@ -193,16 +382,15 @@
193 382
194(defun calc-keypad-press () 383(defun calc-keypad-press ()
195 (interactive) 384 (interactive)
196 (or (eq major-mode 'calc-keypad) 385 (unless (eq major-mode 'calc-keypad-mode)
197 (error "Must be in *Calc Keypad* buffer for this command")) 386 (error "Must be in *Calc Keypad* buffer for this command"))
198 (let* ((row (save-excursion 387 (let* ((row (save-excursion
199 (beginning-of-line) 388 (beginning-of-line)
200 (count-lines (point-min) (point)))) 389 (count-lines (point-min) (point))))
201 (y (/ row 2)) 390 (y (/ row 2))
202 (x (/ (current-column) (if (>= y 4) 6 5))) 391 (x (/ (current-column) (if (>= y 4) 6 5)))
203 radix frac inv 392 radix frac inv
204 (hyp (save-excursion 393 (hyp (with-current-buffer calc-main-buffer
205 (set-buffer calc-main-buffer)
206 (setq radix calc-number-radix 394 (setq radix calc-number-radix
207 frac calc-prefer-frac 395 frac calc-prefer-frac
208 inv calc-inverse-flag) 396 inv calc-inverse-flag)
@@ -363,7 +551,7 @@
363 551
364(defun calc-keypad-menu () 552(defun calc-keypad-menu ()
365 (interactive) 553 (interactive)
366 (unless (eq major-mode 'calc-keypad) 554 (unless (eq major-mode 'calc-keypad-mode)
367 (error "Must be in *Calc Keypad* buffer for this command")) 555 (error "Must be in *Calc Keypad* buffer for this command"))
368 (while (progn (setq calc-keypad-menu (% (1+ calc-keypad-menu) 556 (while (progn (setq calc-keypad-menu (% (1+ calc-keypad-menu)
369 (length calc-keypad-menus))) 557 (length calc-keypad-menus)))
@@ -372,7 +560,7 @@
372 560
373(defun calc-keypad-menu-back () 561(defun calc-keypad-menu-back ()
374 (interactive) 562 (interactive)
375 (or (eq major-mode 'calc-keypad) 563 (or (eq major-mode 'calc-keypad-mode)
376 (error "Must be in *Calc Keypad* buffer for this command")) 564 (error "Must be in *Calc Keypad* buffer for this command"))
377 (while (progn (setq calc-keypad-menu (% (1- (+ calc-keypad-menu 565 (while (progn (setq calc-keypad-menu (% (1- (+ calc-keypad-menu
378 (length calc-keypad-menus))) 566 (length calc-keypad-menus)))
@@ -391,7 +579,7 @@
391(defun calc-pack-interval (mode) 579(defun calc-pack-interval (mode)
392 (interactive "p") 580 (interactive "p")
393 (if (or (< mode 0) (> mode 3)) 581 (if (or (< mode 0) (> mode 3))
394 (error "Open/close code should be in the range from 0 to 3.")) 582 (error "Open/close code should be in the range from 0 to 3"))
395 (calc-pack (- -6 mode))) 583 (calc-pack (- -6 mode)))
396 584
397(defun calc-keypad-execute () 585(defun calc-keypad-execute ()
@@ -424,197 +612,4 @@
424 (error "Not a Calc command: %s" (key-description keys))))) 612 (error "Not a Calc command: %s" (key-description keys)))))
425 613
426 614
427;;; |----+----+----+----+----+----|
428;;; | ENTER |+/- |EEX |UNDO| <- |
429;;; |-----+---+-+--+--+-+---++----|
430;;; | INV | 7 | 8 | 9 | / |
431;;; |-----+-----+-----+-----+-----|
432;;; | HYP | 4 | 5 | 6 | * |
433;;; |-----+-----+-----+-----+-----|
434;;; |EXEC | 1 | 2 | 3 | - |
435;;; |-----+-----+-----+-----+-----|
436;;; | OFF | 0 | . | PI | + |
437;;; |-----+-----+-----+-----+-----|
438
439(defvar calc-keypad-layout
440 '( ( ( "ENTER" calc-enter calc-roll-down calc-roll-up calc-over )
441 ( "ENTER" calc-enter calc-roll-down calc-roll-up calc-over )
442 ( "+/-" calc-change-sign calc-inv (progn -4 calc-pack) )
443 ( "EEX" ("e") (progn calc-num-prefix calc-pack-interval)
444 (progn -5 calc-pack) )
445 ( "UNDO" calc-undo calc-redo calc-last-args )
446 ( "<-" calc-pop (progn 0 calc-pop)
447 (progn calc-num-prefix calc-pop) ) )
448 ( ( "INV" calc-inverse )
449 ( "7" ("7") calc-round )
450 ( "8" ("8") (progn 2 calc-clean-num) )
451 ( "9" ("9") calc-float )
452 ( "/" calc-divide (progn calc-inverse calc-power) ) )
453 ( ( "HYP" calc-hyperbolic )
454 ( "4" ("4") calc-ln calc-log10 )
455 ( "5" ("5") calc-exp calc-exp10 )
456 ( "6" ("6") calc-abs )
457 ( "*" calc-times calc-power ) )
458 ( ( "EXEC" calc-keypad-execute )
459 ( "1" ("1") calc-arcsin calc-sin )
460 ( "2" ("2") calc-arccos calc-cos )
461 ( "3" ("3") calc-arctan calc-tan )
462 ( "-" calc-minus calc-conj ) )
463 ( ( "OFF" calc-keypad-off )
464 ( "0" ("0") calc-imaginary )
465 ( "." (".") calc-precision )
466 ( "PI" calc-pi )
467 ( "+" calc-plus calc-sqrt ) ) ))
468
469(defvar calc-keypad-menus '( calc-keypad-math-menu
470 calc-keypad-funcs-menu
471 calc-keypad-binary-menu
472 calc-keypad-vector-menu
473 calc-keypad-modes-menu
474 calc-keypad-user-menu ) )
475
476;;; |----+----+----+----+----+----|
477;;; |FLR |CEIL|RND |TRNC|CLN2|FLT |
478;;; |----+----+----+----+----+----|
479;;; | LN |EXP | |ABS |IDIV|MOD |
480;;; |----+----+----+----+----+----|
481;;; |SIN |COS |TAN |SQRT|y^x |1/x |
482
483(defvar calc-keypad-math-menu
484 '( ( ( "FLR" calc-floor )
485 ( "CEIL" calc-ceiling )
486 ( "RND" calc-round )
487 ( "TRNC" calc-trunc )
488 ( "CLN2" (progn 2 calc-clean-num) )
489 ( "FLT" calc-float ) )
490 ( ( "LN" calc-ln )
491 ( "EXP" calc-exp )
492 ( "" nil )
493 ( "ABS" calc-abs )
494 ( "IDIV" calc-idiv )
495 ( "MOD" calc-mod ) )
496 ( ( "SIN" calc-sin )
497 ( "COS" calc-cos )
498 ( "TAN" calc-tan )
499 ( "SQRT" calc-sqrt )
500 ( "y^x" calc-power )
501 ( "1/x" calc-inv ) ) ))
502
503;;; |----+----+----+----+----+----|
504;;; |IGAM|BETA|IBET|ERF |BESJ|BESY|
505;;; |----+----+----+----+----+----|
506;;; |IMAG|CONJ| RE |ATN2|RAND|RAGN|
507;;; |----+----+----+----+----+----|
508;;; |GCD |FACT|DFCT|BNOM|PERM|NXTP|
509
510(defvar calc-keypad-funcs-menu
511 '( ( ( "IGAM" calc-inc-gamma )
512 ( "BETA" calc-beta )
513 ( "IBET" calc-inc-beta )
514 ( "ERF" calc-erf )
515 ( "BESJ" calc-bessel-J )
516 ( "BESY" calc-bessel-Y ) )
517 ( ( "IMAG" calc-imaginary )
518 ( "CONJ" calc-conj )
519 ( "RE" calc-re calc-im )
520 ( "ATN2" calc-arctan2 )
521 ( "RAND" calc-random )
522 ( "RAGN" calc-random-again ) )
523 ( ( "GCD" calc-gcd calc-lcm )
524 ( "FACT" calc-factorial calc-gamma )
525 ( "DFCT" calc-double-factorial )
526 ( "BNOM" calc-choose )
527 ( "PERM" calc-perm )
528 ( "NXTP" calc-next-prime calc-prev-prime ) ) ))
529
530;;; |----+----+----+----+----+----|
531;;; |AND | OR |XOR |NOT |LSH |RSH |
532;;; |----+----+----+----+----+----|
533;;; |DEC |HEX |OCT |BIN |WSIZ|ARSH|
534;;; |----+----+----+----+----+----|
535;;; | A | B | C | D | E | F |
536
537(defvar calc-keypad-binary-menu
538 '( ( ( "AND" calc-and calc-diff )
539 ( "OR" calc-or )
540 ( "XOR" calc-xor )
541 ( "NOT" calc-not calc-clip )
542 ( "LSH" calc-lshift-binary calc-rotate-binary )
543 ( "RSH" calc-rshift-binary ) )
544 ( ( "DEC" calc-decimal-radix )
545 ( "HEX" calc-hex-radix )
546 ( "OCT" calc-octal-radix )
547 ( "BIN" calc-binary-radix )
548 ( "WSIZ" calc-word-size )
549 ( "ARSH" calc-rshift-arith ) )
550 ( ( "A" ("A") )
551 ( "B" ("B") )
552 ( "C" ("C") )
553 ( "D" ("D") )
554 ( "E" ("E") )
555 ( "F" ("F") ) ) ))
556
557;;; |----+----+----+----+----+----|
558;;; |SUM |PROD|MAX |MAP*|MAP^|MAP$|
559;;; |----+----+----+----+----+----|
560;;; |INV |DET |TRN |IDNT|CRSS|"x" |
561;;; |----+----+----+----+----+----|
562;;; |PACK|UNPK|INDX|BLD |LEN |... |
563
564(defvar calc-keypad-vector-menu
565 '( ( ( "SUM" calc-vector-sum calc-vector-alt-sum calc-vector-mean )
566 ( "PROD" calc-vector-product nil calc-vector-sdev )
567 ( "MAX" calc-vector-max calc-vector-min calc-vector-median )
568 ( "MAP*" (lambda () (interactive)
569 (calc-map '(2 calcFunc-mul "*"))) )
570 ( "MAP^" (lambda () (interactive)
571 (calc-map '(2 calcFunc-pow "^"))) )
572 ( "MAP$" calc-map-stack ) )
573 ( ( "MINV" calc-inv )
574 ( "MDET" calc-mdet )
575 ( "MTRN" calc-transpose calc-conj-transpose )
576 ( "IDNT" (progn calc-num-prefix calc-ident) )
577 ( "CRSS" calc-cross )
578 ( "\"x\"" "\excalc-algebraic-entry\rx\r"
579 "\excalc-algebraic-entry\ry\r"
580 "\excalc-algebraic-entry\rz\r"
581 "\excalc-algebraic-entry\rt\r") )
582 ( ( "PACK" calc-pack )
583 ( "UNPK" calc-unpack )
584 ( "INDX" (progn calc-num-prefix calc-index) "\C-u\excalc-index\r" )
585 ( "BLD" (progn calc-num-prefix calc-build-vector) )
586 ( "LEN" calc-vlength )
587 ( "..." calc-full-vectors ) ) ))
588
589;;; |----+----+----+----+----+----|
590;;; |FLT |FIX |SCI |ENG |GRP | |
591;;; |----+----+----+----+----+----|
592;;; |RAD |DEG |FRAC|POLR|SYMB|PREC|
593;;; |----+----+----+----+----+----|
594;;; |SWAP|RLL3|RLL4|OVER|STO |RCL |
595
596(defvar calc-keypad-modes-menu
597 '( ( ( "FLT" calc-normal-notation
598 (progn calc-num-prefix calc-normal-notation) )
599 ( "FIX" (progn 2 calc-fix-notation)
600 (progn calc-num-prefix calc-fix-notation) )
601 ( "SCI" calc-sci-notation
602 (progn calc-num-prefix calc-sci-notation) )
603 ( "ENG" calc-eng-notation
604 (progn calc-num-prefix calc-eng-notation) )
605 ( "GRP" calc-group-digits "\C-u-3\excalc-group-digits\r" )
606 ( "" nil ) )
607 ( ( "RAD" calc-radians-mode )
608 ( "DEG" calc-degrees-mode )
609 ( "FRAC" calc-frac-mode )
610 ( "POLR" calc-polar-mode )
611 ( "SYMB" calc-symbolic-mode )
612 ( "PREC" calc-precision ) )
613 ( ( "SWAP" calc-roll-down )
614 ( "RLL3" (progn 3 calc-roll-up) (progn 3 calc-roll-down) )
615 ( "RLL4" (progn 4 calc-roll-up) (progn 4 calc-roll-down) )
616 ( "OVER" calc-over )
617 ( "STO" calc-keypad-store )
618 ( "RCL" calc-keypad-recall ) ) ))
619
620;;; calc-keypd.el ends here 615;;; calc-keypd.el ends here