+(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)
+ ))
+ ))
+ ))
+
+