home *** CD-ROM | disk | FTP | other *** search
/ InfoMagic Source Code 1993 July / THE_SOURCE_CODE_CD_ROM.iso / languages / elisp / packages / MouseAndMenuEmacs / def-menus.el < prev    next >
Encoding:
Text File  |  1990-05-31  |  3.5 KB  |  129 lines

  1. ;;;; Russell Ritchie, <russell@uk.ac.strath.hci>. Wed Nov 9 16:45:40 1988
  2.  
  3. ;;;; Set up the default mode specific menus to load on demand.
  4. ;;;; Warning: this file is intended for Lusers, and simply 
  5. ;;;; appends it's actions to the mode-hooks it affects.
  6.  
  7. (provide 'def-menus)
  8. (require 'utilities)            ; Just in case...
  9.  
  10. (defvar menu-init-quiet nil
  11.   "*If non-nil the menu software will not announce it's arrival.")
  12.  
  13. (defun add-to-hook (hook action)
  14.   "Return HOOK with ACTION added. Incredibly simplistic."
  15.   (append (and (boundp hook) (symbol-value hook)) (list action)))
  16.  
  17. (setq term-setup-hook
  18.       (function
  19.        (lambda ()
  20.      (cond
  21.       ((eq window-system 'x)
  22.        (require 'x-menus)
  23.        (or menu-init-quiet
  24.            (message "Press the %s mouse button in the text region for X menus."
  25.             (cdr (assoc (string-to-int x-menu-mouse-binding)
  26.                     x-button-help-alist)))))
  27.       ((getenv "IN_EMACSTOOL")    ; Peck says this defines Emacstool env.
  28.        (require 'sun-menus)
  29.        (sun-init)
  30.        (or menu-init-quiet (sun-menu-banner)))
  31.       (t (require 'term-menus)    ; Assume simple terminal
  32.          (term-menu-init)
  33.          (or menu-init-quiet
  34.          (message
  35.           (substitute-command-keys
  36.            "Type \\[emacs-term-menu] for menus."))))))))
  37.  
  38. (setq text-mode-hook
  39.       (add-to-hook
  40.        'text-mode-hook
  41.        (function (lambda ()
  42.            (require 'text-menus)
  43.            (set-mode-menu 'text-menu)))))
  44.  
  45. (setq TeX-mode-hook
  46.       (add-to-hook
  47.        'TeX-mode-hook
  48.        (function (lambda ()
  49.            (require 'TeX-menus)
  50.            (set-mode-menu 'TeX-menu)))))
  51.  
  52. (setq LaTeX-mode-hook
  53.       (add-to-hook
  54.        'LaTeX-mode-hook
  55.        (function (lambda ()
  56.            ;; TeX-mode-hook is called first so LaTeX-menu is loaded.
  57.            (set-mode-menu 'LaTeX-menu)))))
  58.  
  59. (setq BibTeX-mode-hook
  60.       (add-to-hook
  61.        'BibTeX-mode-hook
  62.        (function (lambda ()
  63.            (require 'BibTeX-menus)
  64.            (set-mode-menu 'BibTeX-menu)))))
  65.  
  66. (setq lisp-mode-hook
  67.       (add-to-hook
  68.        'lisp-mode-hook
  69.        (function (lambda ()
  70.            (require 'lisp-fns) 
  71.            (require 'lisp-menus)
  72.            (if (eq major-mode 'lisp-mode) ; Inferior lisps inherit
  73.                (set-mode-menu 'lisp-menu)))))) ; from shell-mode.
  74.  
  75. (setq emacs-lisp-mode-hook
  76.       (add-to-hook
  77.        'emacs-lisp-mode-hook
  78.        (function (lambda ()
  79.           (require 'elisp-menus)
  80.           (set-mode-menu 'emacs-lisp-menu)))))
  81.  
  82. (setq prolog-mode-hook
  83.       (add-to-hook
  84.        'prolog-mode-hook
  85.        (function (lambda ()
  86.            (require 'Prolog-menus)
  87.            (if (eq major-mode 'prolog-mode)
  88.                (set-mode-menu 'prolog-menu))))))
  89.  
  90. (setq shell-mode-hook
  91.       (add-to-hook
  92.        'shell-mode-hook
  93.        (function (lambda ()
  94.            (require 'shell-menus)
  95.            (set-mode-menu 'shell-menu)))))
  96.  
  97. (setq dired-mode-hook
  98.       (add-to-hook
  99.        'dired-mode-hook
  100.        (function (lambda ()
  101.            (require 'dired-menus)
  102.            (set-mode-menu 'dired-menu)
  103.            (cond ((eq window-system 'x)
  104.               (require 'dired-x)
  105.               (local-set-mouse
  106.                'text x-button-middle 'x-mouse-inspect-file)
  107.               (local-set-mouse
  108.                'text x-button-s-middle 'x-mouse-inspect-file-other-window))
  109.              ((getenv "IN_EMACSTOOL")
  110.               (require 'dired-sun)
  111.               (define-mouse current-local-mousemap
  112.                 '(left middle text) 'mouse-inspect-file)
  113.               (define-mouse current-local-mousemap
  114.                 '(left shift middle text) 'mouse-inspect-file-other-window)))))))
  115.  
  116. (setq rmail-mode-hook
  117.       (add-to-hook
  118.        'rmail-mode-hook
  119.        (function (lambda ()
  120.            (require 'rmail-menus)
  121.            (set-mode-menu 'rmail-menu)))))
  122.  
  123. (setq mail-mode-hook
  124.       (add-to-hook
  125.        'mail-mode-hook
  126.        (function (lambda ()
  127.            (require 'mail-menus)
  128.            (set-mode-menu 'mail-menu)))))
  129.