Function: calc-do-keypad
calc-do-keypad is an autoloaded and byte-compiled function defined in
calc-keypd.el.gz.
Signature
(calc-do-keypad &optional FULL-DISPLAY INTERACTIVE)
Source Code
;; Defined in /usr/src/emacs/lisp/calc/calc-keypd.el.gz
(defun calc-do-keypad (&optional full-display interactive)
(calc-create-buffer)
(let ((calcbuf (current-buffer)))
(unless (bufferp calc-keypad-buffer)
(set-buffer (setq calc-keypad-buffer (get-buffer-create "*Calc Keypad*")))
(calc-keypad-mode)
(setq calc-main-buffer calcbuf)
(calc-keypad-redraw)
(calc-trail-buffer))
(let ((width 29)
(height 17)
win old-win)
(if (setq win (get-buffer-window "*Calculator*"))
(delete-window win))
(if (setq win (get-buffer-window "*Calc Trail*"))
(if (one-window-p)
(switch-to-buffer (other-buffer))
(delete-window win)))
(if (setq win (get-buffer-window calc-keypad-buffer))
(progn
(bury-buffer "*Calculator*")
(bury-buffer "*Calc Trail*")
(bury-buffer calc-keypad-buffer)
(if (one-window-p)
(switch-to-buffer (other-buffer))
(delete-window win)))
(setq calc-was-keypad-mode t
old-win (get-largest-window))
(if (or (< (window-height old-win) (+ height 6))
(< (window-width old-win) (+ width 15))
full-display)
(delete-other-windows old-win))
(if (< (window-height old-win) (+ height 4))
(error "Screen is not tall enough for this mode"))
(if full-display
(progn
(setq win (split-window old-win (- (window-height old-win)
height 1)))
(set-window-buffer old-win (calc-trail-buffer))
(set-window-buffer win calc-keypad-buffer)
(set-window-start win 1)
(setq win (split-window win (+ width 7) t))
(set-window-buffer win calcbuf))
(if (or t ; left-side keypad not yet fully implemented
(< (with-current-buffer (window-buffer old-win)
(current-column))
(/ (window-width) 2)))
(setq win (split-window old-win (- (window-width old-win)
width 2)
t))
(setq old-win (split-window old-win (+ width 2) t)))
(set-window-buffer win calc-keypad-buffer)
(set-window-start win 1)
(split-window win (- (window-height win) height 1))
(set-window-buffer win calcbuf))
(select-window old-win)
(message "Welcome to GNU Emacs Calc! Use the left and right mouse buttons")
(run-hooks 'calc-keypad-start-hook)
(and calc-keypad-said-hello interactive
(progn
(sit-for 2)
(message "")))
(setq calc-keypad-said-hello t)))
(setq calc-keypad-input nil)))