-(defvar mime-viewer/popup-menu-title "MIME Viewer Commands")
-(defvar mime-viewer/popup-menu-items
- '(("Move to upper content" . mime-viewer/up-content)
- ("Move to previous content" . mime-viewer/previous-content)
- ("Move to next content" . mime-viewer/next-content)
- ("Scroll to previous content" . mime-viewer/scroll-down-content)
- ("Scroll to next content" . mime-viewer/scroll-up-content)
- ("Play Content" . mime-viewer/play-content)
- ("Extract Content" . mime-viewer/extract-content)
- ("Print" . mime-viewer/print-content)
- ("Show X Face" . mime-viewer/display-x-face)
- )
- "Popup Menu for MIME Viewer")
-
-(cond ((string-match "XEmacs\\|Lucid" emacs-version)
- (defvar mime-viewer/popup-menu
- (cons mime-viewer/popup-menu-title
- (mapcar (function
- (lambda (item)
- (vector (car item)(cdr item) t)
- ))
- mime-viewer/popup-menu-items)))
- (defun mime-viewer/popup-menu (event)
- "Popup the menu in the MIME Viewer buffer"
- (interactive "e")
- (select-window (event-window event))
- (set-buffer (event-buffer event))
- (popup-menu 'mime-viewer/popup-menu))
- )
- ((>= emacs-major-version 19)
- (defun mime-viewer/popup-menu (event)
- (interactive "e")
- (mouse-set-point event)
- (let ((menu
- (cons mime-viewer/popup-menu-title
- (list (cons "Menu Items" mime-viewer/popup-menu-items))
- )))
- (let ((func (x-popup-menu event menu)))
- (if func
- (funcall func)
- ))
+(defun mime-viewer/define-keymap (&optional mother)
+ (let ((mime/viewer-mode-map (if mother
+ (copy-keymap mother)
+ (make-keymap)
+ )))
+ (or mother
+ (suppress-keymap mime/viewer-mode-map))
+ (define-key mime/viewer-mode-map
+ "u" (function mime-viewer/up-content))
+ (define-key mime/viewer-mode-map
+ "p" (function mime-viewer/previous-content))
+ (define-key mime/viewer-mode-map
+ "n" (function mime-viewer/next-content))
+ (define-key mime/viewer-mode-map
+ "\e\t" (function mime-viewer/previous-content))
+ (define-key mime/viewer-mode-map
+ "\t" (function mime-viewer/next-content))
+ (define-key mime/viewer-mode-map
+ " " (function mime-viewer/scroll-up-content))
+ (define-key mime/viewer-mode-map
+ "\M- " (function mime-viewer/scroll-down-content))
+ (define-key mime/viewer-mode-map
+ "\177" (function mime-viewer/scroll-down-content))
+ (define-key mime/viewer-mode-map
+ "\C-m" (function mime-viewer/next-line-content))
+ (define-key mime/viewer-mode-map
+ "\C-\M-m" (function mime-viewer/previous-line-content))
+ (define-key mime/viewer-mode-map
+ "v" (function mime-viewer/play-content))
+ (define-key mime/viewer-mode-map
+ "e" (function mime-viewer/extract-content))
+ (define-key mime/viewer-mode-map
+ "\C-c\C-p" (function mime-viewer/print-content))
+ (define-key mime/viewer-mode-map
+ "x" (function mime-viewer/display-x-face))
+ (define-key mime/viewer-mode-map
+ "a" (function mime-viewer/follow-content))
+ (define-key mime/viewer-mode-map
+ "q" (function mime-viewer/quit))
+ (define-key mime/viewer-mode-map
+ "h" (function mime-viewer/show-summary))
+ (define-key mime/viewer-mode-map
+ "\C-c\C-x" (function mime-viewer/kill-buffer))
+ (define-key mime/viewer-mode-map
+ "<" (function beginning-of-buffer))
+ (define-key mime/viewer-mode-map
+ ">" (function end-of-buffer))
+ (define-key mime/viewer-mode-map
+ "?" (function describe-mode))
+ (if mouse-button-2
+ (define-key mime/viewer-mode-map
+ mouse-button-2 (function tm:button-dispatcher))
+ )
+ (cond (running-xemacs
+ (define-key mime/viewer-mode-map
+ mouse-button-3 (function mime-viewer/xemacs-popup-menu))
+ )
+ ((>= emacs-major-version 19)
+ (define-key mime/viewer-mode-map [menu-bar mime-view]
+ (cons mime-viewer/menu-title
+ (make-sparse-keymap mime-viewer/menu-title)))
+ (mapcar (function
+ (lambda (item)
+ (define-key mime/viewer-mode-map
+ (vector 'menu-bar 'mime-view (car item))
+ (cons (nth 1 item)(nth 2 item))
+ )
+ ))
+ (reverse mime-viewer/menu-list)
+ )